LibUsbDotNet не перечисляет USB-принтер
У меня есть этот код в моей программе C#:
UsbRegistry reg = null;
if (productId == 0)
reg = UsbDevice.AllDevices.FirstOrDefault(d => d.Vid.Equals(vendorId));
else
reg = UsbDevice.AllDevices.FirstOrDefault(d => d.Vid.Equals(vendorId)
&& d.Pid.Equals(productId));
if (reg != null)
reg.Open(out _device);
UsbDevice.AllDevices
В свойствах указывается только устройство с USB-отпечатком, даже если у меня USB-принтер также подключен к USB-разъему.
Принтер надежно подключен и включен, и фактически, если я печатаю с помощью драйвера Winspool, он работает.
Мне нужно обойти драйвер Winspool, но при печати напрямую отправляются байты на USB-порт, к которому подключен принтер.
Что здесь может происходить?
Это было добавлено к этой проблеме Github
1 ответ
В Windows libusb поддерживает только несколько драйверов, пожалуйста, прочтите https://github.com/libusb/libusb/wiki/FAQ
Устройство с отпечатками пальцев найдено, поскольку оно использует драйвер HID (возможно). Ваш принтер не HID, ни WinUSB.sys, ни LibusbK.sys. Он также не использует "драйвер winspool" (как ошибочно утверждает ваш вопрос). Winspool - это сервис, а не драйвер устройства.
Используйте API принтера, чтобы найти путь к устройству, затем откройте его с помощью CreateFile и запишите в него. Смотрите вопрос, который вы должны были задать.