2012-06-21 40 views
1

我正在使用CreateFile打開與我的USB硬件的連接。如果我有兩個(或更多)硬件連接到PC,我想阻止我的PC應用程序的多個實例(不同的PID)連接到相同的硬件。CreateFile不會阻止其他進程打開我的設備

我認爲這是通過使用dwShareMode = 0運行CreateFile來完成的。出於某種原因,這是行不通的。向相同的USB設備運行CreateFile時,PC應用程序的幾個不同實例將獲得有效的句柄。

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

有什麼我錯過了?

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

回答

1

WdfDeviceInitSetExclusive(...)在EvtDeviceAdd使工作續約我的司機 8]

相關問題