在Windows上打开Python设备的句柄

apa*_*sen 12 python windows device

我正在尝试使用giveio.sys驱动程序,它需要打开"文件"才能访问受保护的内存.我正在看WinAVR/AVRdude中使用语法的C示例:

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

但这似乎在Python中不起作用 - 我只是得到了"指定的路径无效"错误

f = os.open("\\\\.\\giveio", os.O_RDONLY)
Run Code Online (Sandbox Code Playgroud)

f = os.open("//./giveio", os.O_RDONLY)
Run Code Online (Sandbox Code Playgroud)

为什么这不做同样的事情?

编辑希望减少想法的混乱(谢谢威尔).我确实通过AVRdude附带的批处理文件验证设备驱动程序是否正在运行.

进一步编辑以澄清SamB的赏金.

apa*_*sen 5

解决方案:在python中你必须使用win32file.CreateFile()而不是open().谢谢大家告诉我我想要做什么,它帮助我找到答案!


小智 2

至少可以说你的问题非常令人困惑。

1> 您粘贴的代码使用了一种技巧,使用“DOSNAME”与驱动程序进行通信,即

\\.\DRIVERNAME
Run Code Online (Sandbox Code Playgroud)

2> 您是否创建并加载了“giveio”驱动程序?

驱动程序处理这个调用的原因是因为这个

http://msdn.microsoft.com/en-us/library/ms806162.aspx