Fonction WdfRequestGetStatus (wdfrequest.h)
[S’applique à KMDF et UMDF]
La méthode WdfRequestGetStatus retourne la status d’une requête d’E/S.
Syntaxe
NTSTATUS WdfRequestGetStatus(
[in] WDFREQUEST Request
);
Paramètres
[in] Request
Handle d’un objet de requête d’infrastructure.
Valeur retournée
WdfRequestGetStatus retourne une valeur NTSTATUS. Pour plus d’informations sur la valeur qui peut être retournée, consultez la section Remarques suivante.
Un bogue case activée se produit si le pilote fournit un handle d’objet non valide.
Remarques
La méthode WdfRequestGetStatus retourne l’un des éléments suivants :
- Si l’appel d’un pilote à WdfRequestSend réussit, WdfRequestGetStatus retourne la valeur status définie par le pilote qui appelle WdfRequestComplete pour terminer la requête spécifiée. Le pilote appelle généralement WdfRequestGetStatus à partir d’une fonction de rappel CompletionRoutine .
- Si l’appel d’un pilote à WdfRequestSend échoue, WdfRequestGetStatus retourne une valeur status que l’infrastructure a définie pour décrire l’échec. Le pilote peut appeler WdfRequestGetStatus immédiatement après l’appel de WdfRequestSend.
Pour plus d’informations sur l’achèvement des demandes, consultez Terminer les demandes d’E/S.
Exemples
L’exemple de code suivant provient de l’exemple de pilote KbFiltr . Cet exemple envoie une demande d’E/S à une cible d’E/S. Si WdfRequestSend échoue, l’exemple utilise la valeur de retour WdfRequestGetStatus comme entrée dans WdfRequestComplete.
VOID
KbFilter_ForwardRequest(
IN WDFREQUEST Request,
IN WDFIOTARGET Target
)
{
WDF_REQUEST_SEND_OPTIONS options;
BOOLEAN ret;
NTSTATUS status;
WDF_REQUEST_SEND_OPTIONS_INIT(
&options,
WDF_REQUEST_SEND_OPTION_SEND_AND_FORGET
);
ret = WdfRequestSend(
Request,
Target,
&options
);
if (ret == FALSE) {
status = WdfRequestGetStatus (Request);
DebugPrint(("WdfRequestSend failed: 0x%x\n", status));
WdfRequestComplete(
Request,
status
);
}
return;
}
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Universal |
Version KMDF minimale | 1.0 |
Version UMDF minimale | 2.0 |
En-tête | wdfrequest.h (include 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), RequestGetStatusValid(kmdf) |