Узнайте, какой процесс имеет эксклюзивную блокировку на ручке устройства USB

У меня есть библиотека, которая читает / пишет на USB-устройство с помощью API CreateFile (). Устройство реализует профиль HID-устройства, так что он совместим с драйвером класса HID от Microsoft.

Некоторое другое приложение, установленное в системе, открывает устройство в режиме чтения / записи без режима общего доступа. Что мешает моей библиотеке (и всему, что ее потребляет) работать с устройством. Полагаю, в этом и заключается проблема с HID-совместимым устройством - другое программное обеспечение драйвера (мыши, контроллеры, PHIDGETS и т. Д.) Может не работать.

В любом случае, путь к файлу устройства имеет вид:

1: "\\?\hid#hpqremhiddevice&col01#5&21ff20e7&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}".

2: "\\?\hid#vid_045e&pid_0023#7&34aa9ece&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}".

3: "\?\hid#vid_056a&pid_00b0&col01#6&5b05f29&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}".

И я пытаюсь открыть его с помощью кода, например:

//  First, open it with minimum permissions, this device may not be ours.
//  we'll re-open it later in read/write
hid_device_ref = CreateFile(
    device_path, GENERIC_READ,
    0, NULL, OPEN_EXISTING,
    FILE_ATTRIBUTE_NORMAL, NULL);

Я рассмотрел такой инструмент, как FileMon или Process Monitor от SysInternals. Но я не могу заставить его сообщать об использовании файловых дескрипторов устройств, подобных перечисленным выше.

Ответы на вопрос(4)

Ваш ответ на вопрос