Trouver le processus qui a un verrou exclusif sur un périphérique USB poignée

J'ai une bibliothèque des lectures/écritures sur une clé USB-appareil à l'aide des API CreateFile (). L'appareil arrive à mettre en œuvre le HID-profil de périphérique, tel qu'il est compatible avec Microsoft HID pilote de classe.

Une autre application installée sur le système d'ouverture de l'appareil en mode lecture/écriture avec aucun mode de partage. Qui empêche ma bibliothèque (et tout ce qu'il consomme) de travailler avec l'appareil. Je suppose que c'est la frotter avec un HID périphérique compatible -- autres le pilote logiciel (souris, les contrôleurs, les PHIDGETS, etc) peuvent être peu coopératifs.

De toute façon, l'appareil chemin d'accès du fichier est de la forme:

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}". 

Et j'essaie de l'ouvrir à l'aide de code, comme:

// 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);

Je l'ai considéré comme un outil comme FileMon ou le Moniteur de Processus de SysInternals. Mais je n'arrive pas à l'obtenir à l'état de l'utilisation de l'appareil descripteurs de fichiers comme l'un de ceux énumérés ci-dessus.

OriginalL'auteur Mike Haboustak | 2008-08-22