Поделиться через


C28144

предупреждение C28144. В рамках процедуры отмены в точке выхода irQL в Irp-CancelIrql> должен быть текущим IRQL.

Дополнительные сведения

Значение не обязательно восстанавливаться какой-либо конкретной функцией, но должно быть восстановлено перед выходом. PREfast не удалось определить, что он был восстановлен до требуемого значения.

Когда программа Cancel драйвера завершает работу, значение элемента Irp-CancelIrql> не является текущим IRQL. Как правило, эта ошибка возникает, когда драйвер не вызывает IoReleaseCancelSpinLock с IRQL, предоставленным последним вызовом IoAcquireCancelSpinLock.

Дополнительные сведения о процедурах отмены см. в разделе Отмена irP. Сведения, относящиеся к этому предупреждению, см. в разделе Точки, которые следует учитывать при отмене IRP.

Пример

Это предупреждение вызывается в следующем примере кода.

IoReleaseCancelSpinLock(PASSIVE_LEVEL);

Следующий пример кода позволяет избежать этого предупреждения.

IoReleaseCancelSpinLock(Irp->CancelIrql);