如何获得驱动程序名称?

时间:2010-06-25 13:21:02

标签: c++ driver

如何获取要与CreateFile一起使用的设备的驱动程序名称?

handle = CreateFile( DRIVER_NAME_HERE,  
                     GENERIC_READ | GENERIC_WRITE,
                     FILE_SHARE_READ | FILE_SHARE_WRITE,
                     NULL, OPEN_EXISTING, 0, NULL);

谢谢!

1 个答案:

答案 0 :(得分:1)

这取决于你想要什么。典型的例子是

\\.\C:
\\.\Tcp
\\.\PhysicalDrive0
\\?\usbstor#disk&ven_sandisk&prod_cruzer&rev_8.01#1740030578903736&0#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}
\\.\CON

(见http://msdn.microsoft.com/en-us/library/aa363858(VS.85).aspx)。我建议您也使用WinObj(请参阅http://technet.microsoft.com/en-us/sysinternals/bb896657.aspx)来了解您可以使用哪些设备的更多信息。如果启动WinObj.exe并选择GLOBAL??命名空间,您将看到在\\.\前缀后可以使用的不同名称。函数QueryDosDevice也可以提供帮助。

您可以使用DefineDosDevice功能创建从\Device\Blabla到名称的附加符号链接,您可以在CreateFile中使用语法\\.\MyLogicalDevicName(请参阅http://msdn.microsoft.com/en-us/library/aa364014(VS.85).aspx })。

如果您想将DeviceIoControl函数的IOCTL代码发送到设备,则应使用0代替GENERIC_READ | GENERIC_WRITE作为CreateFile的第二个参数(请参阅http://msdn.microsoft.com/en-us/library/aa363147(v=VS.85).aspx })