怎么用HidLibrary打开扫描枪,试了一下只能打开写,不能打开读功能,无法读取扫描的码?

        private static IntPtr OpenDeviceIO(string devicePath, DeviceMode deviceMode, uint deviceAccess, ShareMode shareMode)
        {
            var security = new NativeMethods.SECURITY_ATTRIBUTES();
            var flags = 0;
 
            if (deviceMode == DeviceMode.Overlapped) flags = NativeMethods.FILE_FLAG_OVERLAPPED;
 
            security.lpSecurityDescriptor = IntPtr.Zero;
            security.bInheritHandle = true;
            security.nLength = Marshal.SizeOf(security);
 
            return NativeMethods.CreateFile(devicePath, deviceAccess, (int)shareMode, ref security, NativeMethods.OPEN_EXISTING, flags, hTemplateFile: IntPtr.Zero);
        }

参数:deviceMode=HidLibrary.DeviceMode.NonOverlapped, deviceAccess=2147483648(GENERIC_READ), shareMode=HidLibrary.ShareMode.ShareRead | HidLibrary.ShareMode.ShareWrite

return返回的CreateFile值不对。

按微软官方文档的说法,其实只能shareMode=0,因为Windows对HID鼠标键盘设备独占,USB扫码枪属于HID键盘