WdfRequestIsCanceled, fonction (wdfrequest.h)
[S’applique à KMDF et UMDF]
La méthode WdfRequestIsCanceled détermine si le gestionnaire d’E/S a tenté d’annuler une demande d’E/S spécifiée.
Syntaxe
BOOLEAN WdfRequestIsCanceled(
[in] WDFREQUEST Request
);
Paramètres
[in] Request
Handle pour un objet de requête d’infrastructure.
Valeur retournée
WdfRequestIsCanceled retourne TRUE si le gestionnaire d’E/S a tenté d’annuler la demande d’E/S spécifiée. Cette méthode peut retourner TRUE même si le pilote appelant n’est pas propriétaire de la requête. Si le pilote n’est pas propriétaire de la demande, il ne doit pas appeler WdfRequestIsCanceled. Pour plus d’informations, consultez Remarques.
WdfRequestIsCanceled retourne FALSE pour l’une des raisons suivantes :
- Le gestionnaire d’E/S n’a pas tenté d’annuler la demande.
- Le pilote appelant n’est pas propriétaire de la demande.
- Le pilote appelant a appelé la méthode WdfRequestMarkCancelable ou WdfRequestMarkCancelableEx .
Un bogue case activée se produit si le pilote fournit un handle d’objet non valide.
Remarques
Si votre pilote n’a pas appelé WdfRequestMarkCancelable ou WdfRequestMarkCancelableEx pour inscrire une fonction de rappel EvtRequestCancel , mais si vous souhaitez que votre pilote détermine si le gestionnaire d’E/S a tenté d’annuler une demande d’E/S, le pilote peut appeler WdfRequestIsCanceled.
Si le pilote a appelé WdfRequestMarkCancelable ou WdfRequestMarkCancelableEx, il doit appeler WdfRequestUnmarkCancelable avant d’appeler WdfRequestIsCanceled.
Un pilote peut appeler WdfRequestIsCanceled pour une requête uniquement si le pilote est propriétaire de la demande d’E/S.
Si WdfRequestIsCanceled retourne TRUE, votre pilote doit annuler la demande en appelant WdfRequestComplete avec un paramètre Status de STATUS_CANCELLED. Si le pilote tente d’effectuer une demande qu’il n’est pas propriétaire, il peut provoquer le blocage du système.
Pour plus d’informations sur WdfRequestIsCanceled, consultez Annulation des demandes d’E/S
Exemples
L’exemple de code suivant appelle WdfRequestComplete si WdfRequestIsCanceled retourne TRUE.
if (WdfRequestIsCanceled(request)) {
WdfRequestComplete(
request,
STATUS_CANCELLED
);
}
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Universal |
Version KMDF minimale | 1.0 |
Version UMDF minimale | 2.0 |
En-tête | wdfrequest.h (inclure Wdf.h) |
Bibliothèque | Wdf01000.sys (KMDF) ; WUDFx02000.dll (UMDF) |
IRQL | <=DISPATCH_LEVEL |
Règles de conformité DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), ReqIsCancOnCancReq(kmdf) |