Descubra qual processo possui um bloqueio exclusivo em uma alça de dispositivo USB

Eu tenho uma biblioteca que lê / grava em um dispositivo USB usando a API CreateFile (). O dispositivo implementa o perfil do dispositivo HID, de forma que seja compatível com o driver de classe HID da Microsoft.

Outro aplicativo instalado no sistema está abrindo o dispositivo no modo de leitura / gravação sem o modo de compartilhamento. O que impede que minha biblioteca (e tudo o que a consome) funcione com o dispositivo. Suponho que esse seja o problema de ser um dispositivo compatível com HID - outro software de driver (mouses, controladores, PHIDGETS etc.) pode não ser cooperativo.

De qualquer forma, o caminho do arquivo do dispositivo está no formato:

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

E eu estou tentando abri-lo 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);

Eu considerei uma ferramenta como FileMon ou Process Monitor da SysInternals. Mas não consigo reportar o uso em identificadores de arquivos de dispositivos como o listado acima.

questionAnswers(4)

yourAnswerToTheQuestion