2011-10-03 112 views
1

我写了一些特定功能的Windows驱动程序。它没有任何问题。但是,我通过ioctl接口调用它时遇到了问题。Windows 7驱动程序ioctl调用

在我的应用程序中,我调用CreateFile并尝试传递给我的驱动程序的名称。但是,它给我一个错误,“无法打开设备”和错误代码是0x03。我使用的是与我的司机完全一样的名字。

从cmd行应用程序打开驱动程序的名称:\ DosDevice \ my_driver 传递给CreateFile的名称也是相同的。 有什么方法可以在Windows命名空间中找到我的驱动程序的名称是什么?

回答

2

Win 32错误0x03是ERROR_PATH_NOT_FOUND。尝试在设备名称的前面添加“\\。\”。所以它变成了“\\。\ DosDevice \ my_driver”,或者它可以简单地是“\\。\ my_driver”,只是为了清楚这是两个斜线,一个点,然后是另一个斜线。这应该把你放入设备命名空间,否则我相信CreateFile只是试图在文件系统上打开一个文件。

+0

我没有尝试,最初却没有神秘工作。有什么方法可以读取Windows命名空间。当我的驱动程序安装完成后,我可以去阅读它的名字吗?我只是想知道是否有一些错误的名称,正在注册与Windows。 –

+0

是否有任何与UNICODE启用编译?是的,我需要为我的应用程序明确启用unicode。 –

+0

得到了答案。我们需要在编译时指定“_UNICODE”。 –

相关问题