驱动:
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",....... 来打开设备了.