Función WdfRequestIsCanceled (wdfrequest.h)
[Se aplica a KMDF y UMDF]
El método WdfRequestIsCanceled determina si el administrador de E/S ha intentado cancelar una solicitud de E/S especificada.
Sintaxis
BOOLEAN WdfRequestIsCanceled(
[in] WDFREQUEST Request
);
Parámetros
[in] Request
Identificador de un objeto de solicitud de marco.
Valor devuelto
WdfRequestIsCanceled devuelve TRUE si el administrador de E/S ha intentado cancelar la solicitud de E/S especificada. Este método puede devolver TRUE incluso si el controlador que realiza la llamada no es el propietario de la solicitud. Si el controlador no posee la solicitud, no debe llamar a WdfRequestIsCanceled. Vea información adicional en Comentarios.
WdfRequestIsCanceled devuelve FALSE por uno de los siguientes motivos:
- El administrador de E/S no ha intentado cancelar la solicitud.
- El controlador que realiza la llamada no es el propietario de la solicitud.
- El controlador de llamada ha llamado al método WdfRequestMarkCancelable o WdfRequestMarkCancelableEx .
Se produce una comprobación de errores si el controlador proporciona un identificador de objeto no válido.
Comentarios
Si el controlador no ha llamado a WdfRequestMarkCancelable o WdfRequestMarkCancelableEx para registrar una función de devolución de llamada EvtRequestCancel , pero si desea que el controlador determine si el administrador de E/S ha intentado cancelar una solicitud de E/S, el controlador puede llamar a WdfRequestIsCanceled.
Si el controlador ha llamado a WdfRequestMarkCancelable o WdfRequestMarkCancelableEx, debe llamar a WdfRequestUnmarkCancelable antes de llamar a WdfRequestIsCanceled.
Un controlador puede llamar a WdfRequestIsCanceled para una solicitud solo si el controlador posee la solicitud de E/S.
Si WdfRequestIsCanceled devuelve TRUE, el controlador debe cancelar la solicitud llamando a WdfRequestComplete con un parámetro Status de STATUS_CANCELLED. Si el controlador intenta completar una solicitud que no posee, el controlador puede hacer que el sistema se bloquee.
Para obtener más información sobre WdfRequestIsCanceled, consulte Cancelación de solicitudes de E/S.
Ejemplos
En el ejemplo de código siguiente se llama a WdfRequestComplete si WdfRequestIsCanceled devuelve TRUE.
if (WdfRequestIsCanceled(request)) {
WdfRequestComplete(
request,
STATUS_CANCELLED
);
}
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Universal |
Versión mínima de KMDF | 1.0 |
Versión mínima de UMDF | 2.0 |
Encabezado | wdfrequest.h (incluir Wdf.h) |
Library | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | <=DISPATCH_LEVEL |
Reglas de cumplimiento de DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), ReqIsCancOnCancReq(kmdf) |