Freigeben über


WdfUsbInterfaceGetConfiguredPipe-Funktion (wdfusb.h)

[Gilt für KMDF und UMDF]

Die WdfUsbInterfaceGetConfiguredPipe-Methode gibt ein Handle an das Framework-Pipe-Objekt zurück, das einer angegebenen USB-Geräteschnittstelle und einem angegebenen Pipeindex zugeordnet ist. Optional gibt die Methode auch Informationen zur Pipe zurück.

Syntax

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

Parameter

[in] UsbInterface

Ein Handle für ein USB-Schnittstellenobjekt, das durch aufrufen von WdfUsbTargetDeviceGetInterface abgerufen wurde.

[in] PipeIndex

Ein nullbasierter Index in den Satz von Frameworkpipeobjekten, die dem angegebenen Schnittstellenobjekt zugeordnet sind.

[in, out, optional] PipeInfo

Ein Zeiger auf eine vom Aufrufer zugewiesene WDF_USB_PIPE_INFORMATION Struktur, die das Framework ausfüllt. Dieser Parameter ist optional und kann NULL sein.

Rückgabewert

Wenn der Vorgang erfolgreich ist, gibt WdfUsbInterfaceGetConfiguredPipe ein Handle an das Framework-Pipeobjekt zurück, das dem angegebenen Schnittstellenobjekt und dem angegebenen Pipeindex zugeordnet ist. Die Methode gibt NULL zurück, wenn die Größe der WDF_USB_PIPE_INFORMATION Struktur falsch ist oder wenn der Pipeindexwert zu groß ist.

Eine Fehlerüberprüfung tritt auf, wenn der Treiber ein ungültiges Objekthandle bereitstellt.

Hinweise

Ihr Treiber kann WdfUsbInterfaceGetConfiguredPipe aufrufen, nachdem er WdfUsbTargetDeviceSelectConfig aufgerufen hat.

Weitere Informationen zur WdfUsbInterfaceGetConfiguredPipe-Methode und USB-E/A-Zielen finden Sie unter USB-E/A-Ziele.

Beispiele

Im folgenden Codebeispiel wird eine USB-Abbruchanforderung an jede konfigurierte Pipe einer angegebenen USB-Schnittstelle gesendet.

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;
    }
}

Anforderungen

Anforderung Wert
Zielplattform Universell
KMDF-Mindestversion 1.0
UMDF-Mindestversion 2.0
Kopfzeile wdfusb.h (einschließlich Wdfusb.h)
Bibliothek Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL <=DISPATCH_LEVEL
DDI-Complianceregeln DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), UsbKmdfIrql(kmdf), UsbKmdfIrql2(kmdf), UsbKmdfIrqlExplicit(kmdf)

Weitere Informationen

WDF_USB_PIPE_INFORMATION

WdfUsbInterfaceGetNumConfiguredPipes

WdfUsbTargetDeviceGetInterface

WdfUsbTargetDeviceSelectConfig