2

CreateFile を使用して、USB ハードウェアへの接続を開いています。PC に 2 つ (またはそれ以上) のハードウェアが接続されている場合、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
);

可能であれば、ドライバー証明書の署名が呼び出されるため、ドライバーを変更せずに、これを希望どおりに機能させたいと考えています。

私は何を逃したのですか?

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

4

1 に答える 1

1

EvtDeviceAdd の WdfDeviceInitSetExclusive(...) により、ドライバーの再署名が機能しました8-]

于 2012-06-21T15:18:43.733 に答える