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);