阅读:1235回复:4
使用IoGetDeviceObjectPointer的问题
我按如下方法使用IoGetDeviceObjectPointer():
全局变量: PDEVICE_OBJECT pDObject; FILE_OBJECT FObject; FILE_OBJECT *pFObject; UNICODE_STRING DevName; NTSTATUS ret=0; 在AddDevice()中调用: pFObject=&FObject; //另一个DRIVER使用IoCreateDevice()时, //使用的DeviceName是\\Device\\DriverA RtlInitUnicodeString(&DevName,L\"\\\\Device\\\\DriverA\"); ret=IoGetDeviceObjectPointer(\\ &DevName,\\ FILE_ALL_ACCESS,\\ &pFObject,\\ &pDObject); 结果,出现蓝屏死机。 我想是调用的方法不对吧。请高手指正。 两个DRIVER 都是WDM,且没有任何关系。 |
|
沙发#
发布于:2002-12-23 16:03
FILE_OBJECT *pFObject
为什么不用 PFILE_OBJECT pFObject; |
|
|
板凳#
发布于:2002-12-23 16:53
问题应该出在
//另一个DRIVER使用IoCreateDevice()时, //使用的DeviceName是\\Device\\DriverA 你确定已经清掉了你创建的devobj的DO_DEVICE_INITIALIZING标志了吗? |
|
地板#
发布于:2002-12-23 17:26
ydyuse:
FILE_OBJECT *pFObject和PFILE_OBJECT pFObject一样呀。 挑战者: 清了。 要不,谁给我个例子看看? |
|
地下室#
发布于:2002-12-24 10:03
那么估计不是这里的问题吧!
|
|