IoCancelIrp 函数 (wdm.h)
IoCancelIrp 例程在给定的 IRP 中设置取消位,并调用 IRP 的取消例程(如果有)。
语法
BOOLEAN IoCancelIrp(
[in] PIRP Irp
);
参数
[in] Irp
指向要取消的 IRP 的指针。
返回值
如果 IRP 具有取消例程并且调用了此例程,IoCancelIrp 将返回 TRUE。 否则,它将返回 FALSE。 在任一情况下,IRP 的取消位都设置为 TRUE。 有关详细信息,请参阅“备注”。
注解
如果 IRP 具有取消例程, IoCancelIrp 将设置取消位并调用取消例程。
如果 Irp-CancelRoutine> 为 NULL,因此 IRP 不可取消,IoCancelIrp 将设置 IRP 的取消位并返回 FALSE。 IRP 应在以后变为可取消时取消。
如果不拥有 IRP 的驱动程序调用 IoCancelIrp,则结果不可预知。 即使设置了取消位,IRP 也可能以成功状态完成。
除非该驱动程序创建了在调用中传递的 IRP,否则中间驱动程序不应任意调用 IoCancelIrp 。 否则,中间驱动程序可能会取消某个更高级别驱动程序出于其自身目的而跟踪的 IRP。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 从 Windows 2000 开始可用。 |
目标平台 | 通用 |
标头 | wdm.h(包括 Wdm.h、Ntddk.h、Ntifs.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |
DDI 符合性规则 | HwStorPortProhibitedDDI (storport) |