Bagikan melalui


Fungsi WdfUsbInterfaceGetConfiguredPipe (wdfusb.h)

[Berlaku untuk KMDF dan UMDF]

Metode WdfUsbInterfaceGetConfiguredPipe mengembalikan handel ke objek pipa kerangka kerja yang terkait dengan antarmuka perangkat USB dan indeks pipa tertentu. Secara opsional, metode ini juga mengembalikan informasi tentang pipa.

Sintaks

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

Parameter

[in] UsbInterface

Handel ke objek antarmuka USB yang diperoleh dengan memanggil WdfUsbTargetDeviceGetInterface.

[in] PipeIndex

Indeks berbasis nol ke dalam kumpulan objek pipa kerangka kerja yang terkait dengan objek antarmuka yang ditentukan.

[in, out, optional] PipeInfo

Penunjuk ke struktur WDF_USB_PIPE_INFORMATION yang dialokasikan pemanggil yang diisi kerangka kerja. Parameter ini bersifat opsional dan dapat berupa NULL.

Nilai kembali

Jika operasi berhasil, WdfUsbInterfaceGetConfiguredPipe mengembalikan handel ke objek pipa kerangka kerja yang terkait dengan objek antarmuka dan indeks pipa yang ditentukan. Metode mengembalikan NULL jika ukuran struktur WDF_USB_PIPE_INFORMATION salah atau jika nilai indeks pipa terlalu besar.

Pemeriksaan bug terjadi jika driver menyediakan handel objek yang tidak valid.

Keterangan

Driver Anda dapat memanggil WdfUsbInterfaceGetConfiguredPipe setelah disebut WdfUsbTargetDeviceSelectConfig.

Untuk informasi selengkapnya tentang metode WdfUsbInterfaceGetConfiguredPipe dan target I/O USB, lihat Target I/O USB.

Contoh

Contoh kode berikut mengirimkan permintaan pembatalan USB ke setiap pipa yang dikonfigurasi dari antarmuka USB tertentu.

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

Persyaratan

Persyaratan Nilai
Target Platform Universal
Versi KMDF minimum 1,0
Versi UMDF minimum 2.0
Header wdfusb.h (termasuk Wdfusb.h)
Pustaka Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL <=DISPATCH_LEVEL
Aturan kepatuhan DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), UsbKmdfIrql(kmdf), UsbKmdfIrql2(kmdf), UsbKmdfIrqlExplicit(kmdf)

Lihat juga

WDF_USB_PIPE_INFORMATION

WdfUsbInterfaceGetNumConfiguredPipes

WdfUsbTargetDeviceGetInterface

WdfUsbTargetDeviceSelectConfig