13 Stimmen

Öffnen eines Handles für ein Gerät in Python unter Windows

Ich versuche, den giveio.sys-Treiber zu verwenden, bei dem eine "Datei" geöffnet werden muss, bevor man auf geschützten Speicher zugreifen kann. Ich schaue mir ein C-Beispiel von WinAVR/AVRdude an, das diese Syntax verwendet:

 #define DRIVERNAME      "\\\\.\\giveio"
 HANDLE h = CreateFile(DRIVERNAME,
            GENERIC_READ,
            0,
            NULL,
            OPEN_EXISTING,
            FILE_ATTRIBUTE_NORMAL,
            NULL);

aber das scheint in Python nicht zu funktionieren - ich erhalte nur die Fehlermeldung "Der angegebene Pfad ist ungültig", sowohl für

f = os.open("\\\\.\\giveio", os.O_RDONLY)

y

f = os.open("//./giveio", os.O_RDONLY)

Warum tut dies nicht dasselbe?

Bearbeitet um hoffentlich die Verwirrung der Ideen zu verringern (danke Will). Ich habe überprüft, dass der Gerätetreiber über die Batch-Dateien läuft, die mit AVRdude kommen.

Weiter bearbeitet zur Klärung von SamB's Bounty.

1voto

Grim Punkte 1132

Es gibt 2 Möglichkeiten, dies zu tun.

Die erste Möglichkeit ist die Verwendung der Win32-Python-Bindungen

h = win32file.CreateFile

Oder mit ctypes

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X