C28144
警告 C28144:在取消例程內,在結束點,Irp-CancelIrql> 中的 IRQL 應該是目前的 IRQL。
其他資訊 |
值不需要由任何特定函式還原,但必須在結束之前還原。 PREfast 無法判斷它已還原為必要的值。 |
當驅動程式的 Cancel 例程結束時,Irp-CancelIrql> 成員的值不是目前的 IRQL。 一般而言,當驅動程式未使用最近呼叫 IoAcquireCancelSpinLock 所提供的 IRQL 呼叫 IoReleaseCancelSpinLock 時,就會發生此錯誤。
如需 取消 例程的詳細資訊,請參閱 取消 IRP。 如需此警告的特定資訊,請參閱 取消 IRP 時要考慮的點。
範例
下列程式代碼範例會引發這個警告。
IoReleaseCancelSpinLock(PASSIVE_LEVEL);
下列程式代碼範例會避免這個警告。
IoReleaseCancelSpinLock(Irp->CancelIrql);