WdfUsbInterfaceGetConfiguredPipe, fonction (wdfusb.h)

[S’applique à KMDF et UMDF]

La méthode WdfUsbInterfaceGetConfiguredPipe retourne un handle à l’objet de canal d’infrastructure associé à une interface d’appareil USB et un index de canal spécifiés. Si vous le souhaitez, la méthode retourne également des informations sur le canal.

Syntaxe

WDFUSBPIPE WdfUsbInterfaceGetConfiguredPipe(
  [in]                WDFUSBINTERFACE           UsbInterface,
  [in]                UCHAR                     PipeIndex,
  [in, out, optional] PWDF_USB_PIPE_INFORMATION PipeInfo
);

Paramètres

[in] UsbInterface

Handle vers un objet d’interface USB obtenu en appelant WdfUsbTargetDeviceGetInterface.

[in] PipeIndex

Index de base zéro dans l’ensemble d’objets de canal d’infrastructure associés à l’objet d’interface spécifié.

[in, out, optional] PipeInfo

Pointeur vers une structure WDF_USB_PIPE_INFORMATION allouée par l’appelant que l’infrastructure remplit. Ce paramètre est facultatif et peut être NULL.

Valeur de retour

Si l’opération réussit, WdfUsbInterfaceGetConfiguredPipe retourne un handle à l’objet de canal d’infrastructure associé à l’objet d’interface et à l’index de canal spécifiés. La méthode retourne NULL si la taille de la structure WDF_USB_PIPE_INFORMATION est incorrecte ou si la valeur d’index du canal est trop grande.

Une vérification de bogue se produit si le pilote fournit un handle d’objet non valide.

Remarques

Votre pilote peut appeler WdfUsbInterfaceGetConfiguredPipe une fois qu’il a appelé WdfUsbTargetDeviceSelectConfig.

Pour plus d’informations sur la méthode WdfUsbInterfaceGetConfiguredPipe et les cibles d’E/S USB, consultez Les cibles d’E/S USB.

Exemples

L’exemple de code suivant envoie une requête d’abandon USB à chaque canal configuré d’une interface USB spécifiée.

BYTE  count, i;
NTSTATUS  status;

count = WdfUsbInterfaceGetNumConfiguredPipes(UsbInterface);

for (i = 0; i < count; i++) {
    WDFUSBPIPE pipe;
    pipe = WdfUsbInterfaceGetConfiguredPipe(
                                            UsbInterface,
                                            i,
                                            NULL
                                            );
    status = WdfUsbTargetPipeAbortSynchronously(
                                            pipe,
                                            WDF_NO_HANDLE,
                                            NULL
                                            );

    if (!NT_SUCCESS(status)) {
        break;
    }
}

Configuration requise

   
Plateforme cible Universal
Version KMDF minimale 1.0
Version UMDF minimale 2,0
En-tête wdfusb.h (inclure Wdfusb.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), UsbKmdfIrql(kmdf), UsbKmdfIrql2(kmdf), UsbKmdfIrql2(kmdf), UsbKmdfIrqlExplicit(kmdf)

Voir aussi

WDF_USB_PIPE_INFORMATION

WdfUsbInterfaceGetNumConfiguredPipes

WdfUsbTargetDeviceGetInterface

WdfUsbTargetDeviceSelectConfig