首页
社区
课程
招聘
[旧帖] Cancel 自旋锁 起了什么作用?? 0.00雪花
发表于: 2012-1-17 00:36 910

[旧帖] Cancel 自旋锁 起了什么作用?? 0.00雪花

2012-1-17 00:36
910
发现IoCancelIrp 函数中

获取了Cancel自旋锁
设置了Irp->Cancel
调用了OnCancelIo函数
但是进入了OnCancelIo函数后 立刻就释放了

还有 像

if(Irp!=DeviceObject->Current||Irp->Cancel)
{
IoReleaseCancelSpinlock(oldirql);
return;
}
else
{IoSetCancelRoutine(Irp,NULL); ①
IoReleaseCancelSpinlock(oldirql);  
}

就为了设置或判断一下Irp->Cancel ??  

另外上面的 ①处 这段代码来自windows驱动开发技术详解  
这里的注释是 正在被startIo处理的IRP不允许调用取消例程 所以把取消例程设为null

这太奇怪了   
难道我不能取消一个很耗时的异步读取IRP ?? 比如 一个很大的硬盘复制操作 这怎可能

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//