C28144

advertencia C28144: dentro de una rutina de cancelación, en el punto de salida, irQL en Irp-CancelIrql> debe ser el IRQL actual.

Información adicional

El valor no se debe restaurar mediante ninguna función específica, pero debe restaurarse antes de salir. PREfast no pudo determinar que se restauró en el valor necesario.

Cuando se cierra la rutina Cancel del controlador, el valor del miembro Irp-CancelIrql> no es el IRQL actual. Normalmente, este error se produce cuando el controlador no llama a IoReleaseCancelSpinLock con el IRQL proporcionado por la llamada más reciente a IoAcquireCancelSpinLock.

Para obtener más información sobre las rutinas Cancel, consulte Canceling IRP (Cancelar IRP). Para obtener información específica de esta advertencia, vea Puntos a tener en cuenta al cancelar IRP.

Ejemplo

En el ejemplo de código siguiente se produce esta advertencia.

IoReleaseCancelSpinLock(PASSIVE_LEVEL);

En el ejemplo de código siguiente se evita esta advertencia.

IoReleaseCancelSpinLock(Irp->CancelIrql);