Bagikan melalui


WinUsb_QueryPipe (winusb.h)

Fungsi WinUsb_QueryPipe mengambil informasi tentang titik akhir yang ditentukan dan pipa terkait untuk antarmuka.

Sintaks

BOOL WinUsb_QueryPipe(
  [in]  WINUSB_INTERFACE_HANDLE  InterfaceHandle,
  [in]  UCHAR                    AlternateInterfaceNumber,
  [in]  UCHAR                    PipeIndex,
  [out] PWINUSB_PIPE_INFORMATION PipeInformation
);

Parameter

[in] InterfaceHandle

Handel buram ke antarmuka yang berisi titik akhir tempat pipa dikaitkan.

Untuk mengkueri pipa yang terkait dengan titik akhir di antarmuka pertama, gunakan handel yang dikembalikan oleh WinUsb_Initialize. Untuk semua antarmuka lainnya, gunakan handel ke antarmuka target, yang diambil oleh WinUsb_GetAssociatedInterface.

[in] AlternateInterfaceNumber

Nilai yang menentukan antarmuka alternatif untuk mengembalikan informasi.

[in] PipeIndex

Nilai yang menentukan pipa untuk mengembalikan informasi tentang. Nilai ini tidak sama dengan bidang bEndpointAddress di deskriptor titik akhir. Nilai PipeIndex 0 menandakan titik akhir pertama yang terkait dengan antarmuka, nilai 1 menandakan titik akhir kedua, dan sebagainya. PipeIndex harus kurang dari nilai di bidang bNumEndpoints dari deskriptor antarmuka.

[out] PipeInformation

Pointer, pada output, ke struktur WINUSB_PIPE_INFORMATION yang dialokasikan pemanggil yang berisi informasi pipa.

Mengembalikan nilai

WinUsb_QueryPipe mengembalikan TRUE jika operasi berhasil. Jika tidak, fungsi ini mengembalikan FALSE, dan pemanggil dapat mengambil kesalahan yang dicatat dengan memanggil GetLastError.

GetLastError dapat mengembalikan kode kesalahan berikut.

Menampilkan kode Deskripsi
ERROR_INVALID_HANDLE
Pemanggil melewati NULL dalam parameter InterfaceHandle .
ERROR_INVALID_PARAMETER
Penelepon melewati NULL dalam parameter PipeInformation ; deskriptor antarmuka tidak dapat ditemukan untuk handel yang ditentukan dalam InterfaceHandle.
ERROR_NO_MORE_ITEMS
Nilai yang diteruskan dalam parameter PipeIndex lebih besar dari nilai bNumEndpoints dari deskriptor antarmuka; deskriptor titik akhir tidak dapat ditemukan untuk antarmuka yang ditentukan.

Keterangan

Fungsi WinUsb_QueryPipe tidak mengambil informasi tentang pipa kontrol.

Setiap antarmuka pada perangkat USB dapat memiliki beberapa titik akhir. Untuk berkomunikasi dengan masing-masing titik akhir ini, driver bus membuat pipa untuk setiap titik akhir pada antarmuka. Indeks pipa berbasis nol. Oleh karena itu untuk n jumlah titik akhir, indeks pipa diatur dari n-1. WinUsb_QueryPipe mengurai pendeskripsi konfigurasi untuk mendapatkan antarmuka yang ditentukan oleh pemanggil. Ini mencari deskriptor antarmuka untuk deskriptor titik akhir yang terkait dengan pipa yang ditentukan pemanggil. Jika titik akhir ditemukan, fungsi mengisi struktur WINUSB_PIPE_INFORMATION yang dialokasikan pemanggil dengan informasi dari pendeskripsi titik akhir.

Persyaratan

Persyaratan Nilai
Target Platform Universal
Header winusb.h (termasuk Winusb.h)
Pustaka Winusb.lib
DLL Winusb.dll

Lihat juga

WINUSB_PIPE_INFORMATION

WinUSB

Fungsi WinUSB

WinUsb_Initialize