Ich habe eine Bibliothek, die liest/schreibt auf ein USB-Gerät mit CreateFile() API. Das Gerät implementiert das HID-Geräteprofil so, dass es mit dem HID-Klassentreiber von Microsoft kompatibel ist.Finden Sie heraus, welcher Prozess eine exklusive Sperre auf einem USB-Gerät hat Handle
Einige andere auf dem System installierte Anwendungen öffnen das Gerät im Lese-/Schreibmodus ohne Freigabe-Modus. Was verhindert, dass meine Bibliothek (und alles, was sie verbraucht) mit dem Gerät arbeitet. Ich nehme an, das ist der Haken daran, ein HID-kompatibles Gerät zu sein - andere Treibersoftware (Mäuse, Controller, PHIDGETS usw.) kann unkooperativ sein.
Auf jeden Fall ist das Gerät Dateipfad der Form:
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}".
Und ich versuche, es zu öffnen Code verwenden, wie:
// 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);
Ich habe ein Tool wie FileMon betrachtet oder Prozessmonitor von SysInternals. Aber ich kann es nicht bekommen, um die Verwendung auf Geräte-Dateihandles wie dem oben aufgeführten zu melden.
Das, was, was man benötigt: [Überprüfen Sie Informationen über den Windows NT System Level Primitives] (http://www.codeguru.com/cpp/wp/system/processesmodules/article.php/c2827/Examine-Information-on- Windows-NT-System-Level-Primitivs.htm) –