Descubra qué proceso tiene un bloqueo exclusivo en un dispositivo USB

Tengo una biblioteca que lee / escribe en un dispositivo USB usando la API CreateFile (). El dispositivo implementa el perfil de dispositivo HID, de modo que es compatible con el controlador de clase HID de Microsoft.

Alguna otra aplicación instalada en el sistema está abriendo el dispositivo en modo lectura / escritura sin modo compartido. Lo que impide que mi biblioteca (y todo lo que la consume) funcione con el dispositivo. Supongo que ese es el problema de ser un dispositivo compatible con HID: otro software de controlador (ratones, controladores, PHIDGETS, etc.) puede no cooperar.

De todos modos, la ruta del archivo del dispositivo tiene la forma:

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

Y estoy tratando de abrirlo usando código, como:

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

He considerado una herramienta como FileMon o Process Monitor de SysInternals. Pero parece que no puedo hacer que informe sobre el uso en los identificadores de archivos del dispositivo como el que se menciona arriba.