C28144

警告 C28144:在取消例程中,在退出时,Irp-CancelIrql> 中的 IRQL 应为当前 IRQL。

其他信息

值不需要由任何特定函数还原,但必须在退出之前还原。 PREfast 无法确定它已还原到所需的值。

当驱动程序的 Cancel 例程退出时,Irp-CancelIrql> 成员的值不是当前 IRQL。 通常,当驱动程序未使用 最近调用 IoAcquireCancelSpinLock 提供的 IRQL 调用 IoReleaseCancelSpinLock 时,会发生此错误。

有关 取消 例程的详细信息,请参阅 取消 IRP。 有关特定于此警告的信息,请参阅 取消 IRP 时的注意事项

示例

下面的代码示例会引发此警告。

IoReleaseCancelSpinLock(PASSIVE_LEVEL);

下面的代码示例避免了此警告。

IoReleaseCancelSpinLock(Irp->CancelIrql);