Finden Sie heraus, welcher Prozess eine exklusive Sperre auf einem USB-Gerät behandeln

Ich habe eine Bibliothek, die liest/schreibt auf ein USB-Gerät mit CreateFile() API. Das Gerät geschieht zu implementieren, die HID-device-Profil, so dass es kompatibel mit Microsoft HID class-Treiber.

Einer anderen Anwendung auf dem system installiert ist, öffnen Sie das Gerät im lese - /schreib-Modus mit keine Freigabe-Modus. Die verhindert, dass meine Bibliothek (und alles, was verbraucht er) arbeiten mit dem Gerät. Ich nehme an, das ist der Haken mit einer HID-kompatiblen Gerät -- andere-Treiber-software (Mäuse, Controller, PHIDGETS, etc) können unkooperativ.

Sowieso, die Geräte-Datei-Pfad ist von 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 mit code 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);

Habe ich mir überlegt ein tool wie FileMon oder Process Monitor von SysInternals. Aber ich kann nicht scheinen, um es zu melden-Nutzung auf Gerät Datei-handles wie die, die oben aufgeführt sind.

Schreibe einen Kommentar