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 de périphérique 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 de WDF_USB_PIPE_INFORMATION allouée par l’appelant que l’infrastructure remplit. Ce paramètre est facultatif et peut être NULL.

Valeur retournée

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.

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

Remarques

Votre pilote peut appeler WdfUsbInterfaceGetConfiguredPipe après avoir appelé WdfUsbTargetDeviceSelectConfig.

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

Exemples

L’exemple de code suivant envoie une demande 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

Condition requise Valeur
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), UsbKmdfIrqlExplicit(kmdf)

Voir aussi

WDF_USB_PIPE_INFORMATION

WdfUsbInterfaceGetNumConfiguredPipes

WdfUsbTargetDeviceGetInterface

WdfUsbTargetDeviceSelectConfig