共用方式為


C28144

警告 C28144:在取消例程內,在結束點,Irp-CancelIrql> 中的 IRQL 應該是目前的 IRQL。

其他資訊

值不需要由任何特定函式還原,但必須在結束之前還原。 PREfast 無法判斷它已還原為必要的值。

當驅動程式的 Cancel 例程結束時,Irp-CancelIrql> 成員的值不是目前的 IRQL。 一般而言,當驅動程式未使用最近呼叫 IoAcquireCancelSpinLock 所提供的 IRQL 呼叫 IoReleaseCancelSpinLock 時,就會發生此錯誤。

如需 取消 例程的詳細資訊,請參閱 取消 IRP。 如需此警告的特定資訊,請參閱 取消 IRP 時要考慮的點

範例

下列程式代碼範例會引發這個警告。

IoReleaseCancelSpinLock(PASSIVE_LEVEL);

下列程式代碼範例會避免這個警告。

IoReleaseCancelSpinLock(Irp->CancelIrql);