WdfRequestChangeTarget, fonction (wdfrequest.h)

[S’applique à KMDF et UMDF]

La méthode WdfRequestChangeTarget vérifie qu’une demande d’E/S spécifiée peut être envoyée à une cible d’E/S spécifiée.

Syntaxe

NTSTATUS WdfRequestChangeTarget(
  [in] WDFREQUEST  Request,
  [in] WDFIOTARGET IoTarget
);

Paramètres

[in] Request

Handle pour un objet de requête d’infrastructure.

[in] IoTarget

Handle pour un objet cible d’E/S de framework.

Valeur retournée

WdfRequestChangeTarget retourne STATUS_SUCCESS si l’opération réussit. Sinon, cette méthode peut retourner l’une des valeurs suivantes :

Code de retour Description
STATUS_INVALID_PARAMETER
Un paramètre d’entrée n’est pas valide.
STATUS_INSUFFICIENT_RESOURCES
Les ressources système sont insuffisantes pour terminer l’opération.
STATUS_REQUEST_NOT_ACCEPTED
Le tableau des emplacements de la pile d’E/S de la demande n’est pas suffisamment grand pour permettre au pilote d’envoyer la demande à la cible d’E/S.
 

Cette méthode peut également retourner d’autres valeurs NTSTATUS.

Un bogue case activée se produit si le pilote fournit un handle d’objet non valide.

Remarques

Votre pilote doit appeler la méthode WdfRequestChangeTarget avant d’appeler WdfRequestSend, si le pilote envoie une seule requête d’E/S à plusieurs cibles d’E/S. WdfRequestChangeTarget vérifie que la demande peut être envoyée à la cible d’E/S spécifiée.

La plupart des pilotes envoient chaque requête à un seul appareil et donc à une seule cible d’E/S. Un pilote reçoit la demande ou crée une nouvelle requête en appelant WdfRequestCreate.

Si le pilote envoie la demande à un appareil, il appelle WdfDeviceGetIoTarget pour déterminer la cible d’E/S de l’appareil, puis appelle WdfRequestSend pour envoyer la demande à la cible.

Si le pilote envoie la demande à plusieurs appareils, il appelle WdfDeviceGetIoTarget pour chaque appareil afin de déterminer la cible d’E/S de l’appareil. Avant d’appeler WdfRequestSend, le pilote doit appeler WdfRequestChangeTarget pour s’assurer que chaque cible d’E/S est accessible.

Pour plus d’informations sur WdfRequestChangeTarget, consultez Transfert des demandes d’E/S.

Exemples

L’exemple de code suivant vérifie qu’une demande d’E/S peut être envoyée à la cible d’E/S locale d’un appareil spécifié.

NTSTATUS  status;

status = WdfRequestChangeTarget(
                                request,
                                WdfDeviceGetIoTarget(Device)
                                );

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), InvalidReqAccess(kmdf), InvalidReqAccessLocal(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Voir aussi

WdfDeviceGetIoTarget

WdfRequestCreate

WdfRequestSend