C28144
предупреждение C28144. В рамках процедуры отмены в точке выхода irQL в Irp-CancelIrql> должен быть текущим IRQL.
Дополнительные сведения |
Значение не обязательно восстанавливаться какой-либо конкретной функцией, но должно быть восстановлено перед выходом. PREfast не удалось определить, что он был восстановлен до требуемого значения. |
Когда программа Cancel драйвера завершает работу, значение элемента Irp-CancelIrql> не является текущим IRQL. Как правило, эта ошибка возникает, когда драйвер не вызывает IoReleaseCancelSpinLock с IRQL, предоставленным последним вызовом IoAcquireCancelSpinLock.
Дополнительные сведения о процедурах отмены см. в разделе Отмена irP. Сведения, относящиеся к этому предупреждению, см. в разделе Точки, которые следует учитывать при отмене IRP.
Пример
Это предупреждение вызывается в следующем примере кода.
IoReleaseCancelSpinLock(PASSIVE_LEVEL);
Следующий пример кода позволяет избежать этого предупреждения.
IoReleaseCancelSpinLock(Irp->CancelIrql);