[仅适用于 KMDF]
WdfDpcCancel 方法尝试取消执行 DPC 对象的计划 EvtDpcFunc 回调函数。
语法
BOOLEAN WdfDpcCancel(
[in] WDFDPC Dpc,
[in] BOOLEAN Wait
);
参数
[in] Dpc
框架 DPC 对象的句柄。
[in] Wait
一个布尔值,如果 TRUE,则表示在取消或完成执行 DPC 对象的 EvtDpcFunc 回调函数之前,wdfDpcCancel 方法不会返回。 如果 FALSE,则 WdfDpcCancel 方法将立即返回。
返回值
WdfDpcCancel 如果指定的 DPC 对象的 EvtDpcFunc 回调函数在系统的 DPC 队列中,则返回 TRUE。 如果回调函数不在 DPC 队列中,则该方法返回 FALSE,要么是因为回调函数正在执行,要么是因为该函数已完成执行。
如果驱动程序提供无效的对象句柄,则会发生 bug 检查。
注解
如果指定的 DPC 对象的 EvtDpcFunc 回调函数位于系统的 DPC 队列中,则会从队列中删除该函数。 如果 EvtDpcFunc 函数不在队列中,则它正在执行或已完成执行。
如果 Wait 参数 TRUE,则必须在 IRQL = PASSIVE_LEVEL调用 WdfDpcCancel。 如果 Wait 参数 FALSE,则可以在任何 IRQL 上调用 WdfDpcCancel。
例子
下面的代码示例取消与 WdfDpcCreate 主题中创建的代码示例关联的回调函数的执行。
WdfDpcCancel(
PDevExt->CompleteWriteDpc,
TRUE
);
要求
要求 | 价值 |
---|---|
目标平台 | 普遍 |
最低 KMDF 版本 | 1.0 |
标头 | wdfdpc.h (包括 Wdf.h) |
图书馆 | Wdf01000.sys(请参阅框架库版本控制。 |
IRQL | 请参阅“备注”部分。 |
DDI 符合性规则 | DriverCreate(kmdf),KmdfIrql(kmdf),KmdfIrql2(kmdf),KmdfIrqlExplicit(kmdf) |