首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 驱动开发 >

DeviceIoControl有关问题

2012-02-03 
DeviceIoControl问题驱动:RtlInitUnicodeString(&FilDevName,L \\Device\\TdiFilter )RtlInitUnicodeSt

DeviceIoControl问题
驱动:
RtlInitUnicodeString(&FilDevName,L "\\Device\\TdiFilter ");
RtlInitUnicodeString(&FilDevLink,L "\\DosDevices\\TdiFilter ");
//Create   Device
status   =   IoCreateDevice(pDriObj,0,NULL,FILE_DEVICE_UNKNOWN,0,TRUE,&g_DevObj);
//Create   SymbolicLink
status   =   IoCreateSymbolicLink(&FilDevLink,&FilDevName);
应用程序:
hFile   =   CreateFile( "\\\\.\\TdiFilter ",GENERIC_READ   |   GENERIC_WRITE,FILE_SHARE_READ   |   FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,NULL);
怎么hFIle总是INVALID_HANDLE_VALUE

[解决办法]
唉 . 老大 ,你的代码有问题 .
IoCreateDevice(pDriObj,0,NULL,FILE_DEVICE_UNKNOWN,0,TRUE,&g_DevObj); 
其中第三个参数是你要创建的这个设备对象的名字 .你却用了"NULL" 应该用上面你声明的FilDevName作为参数.
这样, 接下来调用IoCreateSymbolicLink后 就可以将你的设备名和你的符号链接名连接在一起了. 接下来,你就可以使用
CreateFile("\\\\.\\TdiFilter",....... 来打开设备了.

热点排行