2012-06-21 2 views
1

CreateFile을 사용하여 USB 하드웨어에 대한 연결을 엽니 다. PC에 2 개 (또는 그 이상)의 하드웨어가 연결되어 있다면 PC 응용 프로그램의 여러 인스턴스 (다른 PID)가 동일한 하드웨어에 연결되는 것을 방지하고 싶습니다.CreateFile이 다른 프로세스가 내 장치를 열지 못하도록합니다.

나는 이것이 dwShareMode = 0으로 CreateFile을 실행함으로써 이루어 졌다고 생각했다. 무엇인가의 이유로 이것은 작동하지 않는다. PC 응용 프로그램의 여러 인스턴스가 CreateFile을 동일한 USB 장치로 실행할 때 유효한 핸들을 얻습니다.

hDev = CreateFile(
    "\\\\?\\usb#vid_0442&pid_0891&mi_01#6&2ea0fbc8&0&0001#{ff646f80-8def-11d2-9449-00105a075f6b}" 
    GENERIC_READ | GENERIC_WRITE, 
    0, 
    NULL, 
    OPEN_EXISTING, 
    FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, 
    NULL 
); 

내가 그 호출합니다 드라이버 인증서 서명, yadayada 이후 드라이버를 변경하지 않고 원하는대로 내가이 일을하고 싶습니다 가능하다면 ... 내가 놓친 무엇

? EvtDeviceAdd에서

http://msdn.microsoft.com/en-us/library/windows/desktop/aa363858(v=vs.85).aspx

답변

1

WdfDeviceInitSetExclusive (...)는이 재계약 내 드라이버 8]

일을했다
관련 문제