IOCTL an Windows-Gerätetreiber senden - CreateFile schlägt fehl

8

Ich möchte einen IOCTL-Befehl an einen PC / SC-Leser senden, der an meinen Computer angeschlossen ist (win7 64 bit). Um einen IOCTL-Befehl zu senden, benötige ich einen HANDLE zum Gerät, den ich nicht erstellen kann.

Das Gerät wird im Gerätemanager als "OMNIKEY 1021" aufgeführt. Der Name des physischen Geräteobjekts lautet "\ Device \ USBPDO-15". Mit dem "WinObj" -Tool kann ich 2 symbolische Links erkennen: USB # VID_076B & amp; PID_1021 # 5 & amp; 291f6990 & amp; 0 & amp; 1 # {50dd5230-ba8a-11d1-bf5d-0000f805f530} USB # VID_076B & amp; PID_1021 # 5 & amp; 291f6990 & amp; 0 & amp; 1 # {a5dcbf10-6530-11d2-901f-00c04fb951ed}

Mein Problem: Ich kann mit der CreateFile-Funktion kein gültiges Handle für dieses Gerät erstellen:

Ich habe mehrere mögliche Formate in MSDN / Google als Parameter lpFileName der CreateFile-Funktion gefunden, aber keine davon scheint zu funktionieren:

%Vor%

Codebeispiel :

%Vor%

Hinweise:

  • Das zurückgegebene Handle ist immer ungültig
  • Wird immer als Administrator ausgeführt, daher sollten die Berechtigungen kein Problem sein

bearbeiten:

Lösung:

  • Der PC / SC-Dienst übernimmt die ausschließliche Eigentümerschaft der Geräte, so dass jeder Versuch, 'CreateFile' aufzurufen, immer fehlschlägt.
  • Die Lösung ist ein Kernel-Space-Treiber, mit dem Sie IRPs an den Treiber übergeben können. (Ich konnte einen KMDF-Filtertreiber implementieren, um Daten zu ändern, die vom Gerät gesendet / empfangen wurden)
bmotmans 24.11.2011, 23:19
quelle

2 Antworten

7

Versuche es auf meine Art. Ich verwende Setup-API, um alle aktiven USB-Geräte im System aufzuzählen und Pfade abzurufen. Auf diese Weise können Sie herausfinden, ob es der Pfad oder andere Argumente sind, die CreateFile nicht mögen.

Ich werde ein paar Kommentare später hinzufügen, wenn jemand interessiert ist.

%Vor%     
Violet Giraffe 28.11.2011, 14:40
quelle
0

Probieren Sie es einfach mit CreateFile(L"\\.\{GUID}",etc.. .

    
user2986042 29.05.2017 07:26
quelle

Tags und Links