我为某些特定功能编写了一个Windows驱动程序。它没有任何问题。但是,我在通过ioctl接口调用它时遇到了问题。
在我的应用程序中,我调用CreateFile并尝试传递我给我的驱动程序的名称。但是,它给了我一个错误,“无法打开设备”,错误代码是0x03。我正在使用与我的驱动程序完全相同的名称。
从cmd行应用程序打开驱动程序的名称:\ DosDevice \ my_driver 传递给CreateFile的名称也是一样的。 有没有办法在Windows命名空间中找到我的驱动程序的名称?
答案 0 :(得分:2)
Win 32错误0x03是ERROR_PATH_NOT_FOUND。尝试在设备名称的前面添加“\\。\”。所以它变成了“\\。\ DosDevice \ my_driver”,或者它可能只是“\\。\ my_driver”,只是为了清楚地说明是2斜线,一个点,然后是另一个斜线。这应该会让你进入设备命名空间,否则我相信CreateFile只是试图在文件系统上打开一个文件。
答案 1 :(得分:0)
您可以使用WinObjEx实用程序检查您的驱动程序是否创建了设备及其名称:http://www.freewebs.com/four-f/