问一个AddDevice和设备符号链的问题??

王朝other·作者佚名  2006-02-01
窄屏简体版  字體: |||超大  

问一个AddDevice和设备符号链的问题??

UNICODE_STRING ntDeviceName;

UNICODE_STRING win32DeviceName;

RtlInitUnicodeString(&ntDeviceName, L"\\\\Twdm1");

RtlInitUnicodeString(&win32DeviceName, L"\\\\Twdm1");

DbgPrint("Starting AddDevice()\n");

//创建我们的功能设备对象,并储存到fdo中:

status = IoCreateDevice(

DriverObject, //驱动程序对象

sizeof(DEVICE_EXTENSION), //要求的设备扩展的大小

&ntDeviceName, //设备名称,这里为NULL

FILE_DEVICE_UNKNOWN, //设备的类型,在标准头文件WDM.H或NTDDK.H中列出的FILE_DEVICE_xxx值之一

0, //各种常量用OR组合在一起,指示可删除介质、只读等。

FALSE, //如果一次只有一个线程可以访问该设备,为TRUE,否则为FALSE

&fdo); //返回的设备对象

//NT_SUCCESS宏用于测试IoCreateDevice内核是否成功完成。不要忘记检查对内核的所有调用是否成功。

//NT_ERROR宏不等同于!NT_SUCCESS,最好使用!NT_SUCCESS,因为除了错误外,它还截获警告信息。

if( !NT_SUCCESS(status))

{

DbgPrint("AddDevice(): IoCreateDevice failed!");

return status;

}

else

{

DbgPrint("AddDevice(): IoCreateDevice OK!");

}

status = IoCreateSymbolicLink( &win32DeviceName, &ntDeviceName );

if (!NT_SUCCESS(status))

{

DbgPrint("TWDM: IoCreateSymbolicLink() faild ! \n");

}

else

{

DbgPrint("TWDM: IoCreateSymbolicLink() ok ! \n");

}

为什么驱动程序加载的时候显示“AddDevice(): IoCreateDevice failed!”呢?

好像是设备名字不对

改成这两句试试

RtlInitUnicodeString(&ntDeviceName, L"\\Device\\Twdm1");

RtlInitUnicodeString(&win32DeviceName, L"\\DosDevices\\Twdm1");

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航