首页
社区
课程
招聘
[旧帖] IoDetachDevice 怎么用啊? 0.00雪花
发表于: 2010-4-23 22:34 5624

[旧帖] IoDetachDevice 怎么用啊? 0.00雪花

2010-4-23 22:34
5624
PDEVICE_OBJECT    IoAttachDeviceToDeviceStack(
    IN PDEVICE_OBJECT  SourceDevice,
    IN PDEVICE_OBJECT  TargetDevice
    );

VOID   IoDetachDevice(    IN OUT PDEVICE_OBJECT  TargetDevice  );

LowerDevice = IoAttachDeviceToDeviceStack(SourceDevice,TargetDevice);
IoDetachDevice( ????);

我在DriverUnload里面解除设备绑定时老是蓝屏。我怀疑是不是我对这IoDetachDevice()
理解有错. IoDetachDevice(Parameters)  到底填那个值啊?
SourceDevice ? TargetDevice ? 还是LowerDevice ?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 86
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
DDK 解释: Pointer to the lower driver's device object.

问题:
LowerDevice = IoAttachDeviceToDeviceStack(SourceDevice,TargetDevice);
IoDetachDevice( ????);

答案:IoDetachDevice(Parameters) = IoDetachDevice(LowerDevice )

说明:SourceDevice ? TargetDevice ? 还是LowerDevice ?

SourceDevice 是你创建的要绑定到设备栈上的设备;TargetDevice 是设备栈上被你绑定的设备;LowerDevice 是绑定动作执行之后返回的栈顶的下一级设备,有可能是 TargetDevice 设备,如果 SourceDevice 和 TargetDevice 之间没有 FilterDevice 的话。

解释完毕。
2010-4-23 23:00
0
游客
登录 | 注册 方可回帖
返回
//