CreateFile不会阻止其他进程打开我的设备

时间:2012-06-21 07:25:10

标签: createfile wdf

我正在使用CreateFile打开与USB硬件的连接。如果我有两个(或更多)硬件连接到PC,我想阻止我的PC应用程序的几个实例(不同的PID)连接到同一个硬件。

我认为这是通过运行CreateFile并使用dwShareMode = 0来完成的。出于某种原因,这不起作用。当向同一个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 个答案:

答案 0 :(得分:1)

EvtDeviceAdd的WdfDeviceInitSetExclusive(...)使其工作重新签名我的驱动程序 8-]