StartIoCancel 规则 (wdm)

StartIoCancel 规则指定,在使用非 NULLCancel 例程调用 IoSetCancelRoutine 之前,驱动程序不得调用 NonCanable 参数设置为 FALSEIoSetStartIoAttries

在注册 Cancel 例程之前将 NonCancelable 参数设置为 FALSE 可能会导致取消争用条件。

由于驱动程序的 Cancel 例程必须包括对 IoReleaseCancelSpinLock (的调用,以释放 I/O 管理器在调用 取消 例程) 之前获取的旋转锁,因此请考虑使用 StartIoCancel 规则和 CancelSpinLock 规则验证驱动程序。

驱动程序模型:WDM

如何测试

编译时

运行 静态驱动程序验证程序 并指定 StartIoCancel 规则。

使用以下步骤运行代码分析:
  1. 准备代码 (使用角色类型声明) 。
  2. 运行静态驱动程序验证程序。
  3. 查看和分析结果。

有关详细信息,请参阅 使用静态驱动程序验证程序查找驱动程序中的缺陷

适用于

IoSetCancelRoutineIoSetStartIoAttributes

另请参阅

CancelSpinLock