Partager via


WdfRequestChangeTarget, fonction (wdfrequest.h)

[S’applique à KMDF et UMDF]

La méthode WdfRequestChangeTarget vérifie qu’une requête 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 vers un objet de requête de framework.

[in] IoTarget

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

Valeur de retour

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

Retourner le code Description
STATUS_INVALID_PARAMETER
Un paramètre d’entrée n’est pas valide.
STATUS_INSUFFICIENT_RESOURCES
Il existe des ressources système insuffisantes pour terminer l’opération.
STATUS_REQUEST_NOT_ACCEPTED
Le tableau des emplacements de pile d’E/S de la requête n’est pas suffisamment grand pour permettre au pilote d’envoyer la requête à la cible d’E/S.
 

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

Une vérification de bogue 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 requête d’E/S unique à plusieurs cibles d’E/S. WdfRequestChangeTarget vérifie que la requête 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 requête à un appareil, il appelle WdfDeviceGetIoTarget pour déterminer la cible d’E/S de l’appareil, puis appelle WdfRequestSend pour envoyer la requête à la cible.

Si le pilote envoie la requête à 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 vous assurer que chaque cible d’E/S est accessible.

Pour plus d’informations sur WdfRequestChangeTarget, consultez transfert de requêtes d’E/S.

Exemples

L’exemple de code suivant vérifie qu’une requête 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)
                                );

Exigences

Exigence Valeur
plateforme cible Universel
version minimale de KMDF 1.0
version minimale de UMDF 2.0
d’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), InvalidReqAccess(kmdf), InvalidReqAccessLocal(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Voir aussi

WdfDeviceGetIoTarget

WdfRequestCreate

WdfRequestSend