使用CreateFile打开设备名称

时间:2014-02-11 13:44:55

标签: windows winapi driver

我正在开发一个简单的设备驱动程序,我希望使用IRP从用户模式与驱动程序通信。

我无法打开设备驱动程序。使用DeviceTree我能够看到设备名称,例如\ Device \ MyDevice。

但是当我试图像这样打开它时:

hand := CreateFile('\Device\MyDevice', GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);  

我总是得到INVALID_HANDLE_VALUE而GetLastError是(系统找不到指定的路径)

我做错了什么?我知道驱动程序有效,因为我可以看到它在DebugView中运行和打印。那么任何提示?

enter image description here

1 个答案:

答案 0 :(得分:9)

这是Tim Robinson, MVP (Windows SDK)的一个很好的解释:

  

表单\Device\xxx的名称是内部NT对象管理器名称   Win32无法访问。您将只能访问您的设备   从\Device\MyDevice目录创建指向\??\的符号链接。对象   在\??\内核目录中,在Win32中显示\\.\。使用Winobj   DDK(或从www.sysinternals.com下载)进行检查。