-
-
[旧帖] 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 ?? 比如 一个很大的硬盘复制操作 这怎可能
获取了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 ?? 比如 一个很大的硬盘复制操作 这怎可能
赞赏
他的文章
- vpn服务器怎么区分网站的响应报文是谁的??? 1464
- 怎么用windbg查看socket对象的对象体? 1408
- ....逆向工程揭秘这本书 1660
- ida有一段代码反汇编不出来怎么办? 1389
- [求助]蓝屏 UNEXPECTED_KERNEL_MODE_TRAP_M 1281
看原图
赞赏
雪币:
留言: