2010-06-25 133 views
2

我怎样才能得到与CreateFile一起使用的设备的驱动程序名称?如何获取驱动程序名称?

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

谢谢!

回答

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)使用名称的附加符号链接。

如果您要发送IOCTL代码对于DeviceIoControl功能的设备,你应该使用0而不是GENERIC_READ | GENERIC_WRITE作为CreateFile第二个参数(见http://msdn.microsoft.com/en-us/library/aa363147(v=VS.85).aspx

相关问题