警告 C28144:在取消例程中,在退出点,Irp->CancelIrql 中的 IRQL 应为当前的 IRQL。
其他信息 |
该值不需要由任何特定函数还原,但必须在退出前还原。 PREfast 无法确定它已还原到所需的值。 |
驱动程序 取消 例程退出时,Irp->CancelIrql 成员的值不是当前的 IRQL。 通常,当驱动程序未使用最近调用 IoAcquireCancelSpinLock提供的 IRQL 调用 IoReleaseCancelSpinLock 时,会发生此错误。
有关 取消 例程的详细信息,请参阅 取消 IRP。 有关此警告的特定信息,请参阅 取消 IRP时要考虑的点。
示例
下面的代码示例引发此警告。
IoReleaseCancelSpinLock(PASSIVE_LEVEL);
下面的代码示例避免出现此警告。
IoReleaseCancelSpinLock(Irp->CancelIrql);