Bagikan melalui


fungsi WinUsb_Initialize (winusb.h)

Fungsi WinUsb_Initialize membuat handel WinUSB untuk perangkat yang ditentukan oleh handel file.

Sintaks

BOOL WinUsb_Initialize(
  [in]  HANDLE                   DeviceHandle,
  [out] PWINUSB_INTERFACE_HANDLE InterfaceHandle
);

Parameter

[in] DeviceHandle

Handel ke perangkat yang dikembalikan CreateFile . WinUSB menggunakan I/O yang tumpang tindih, jadi FILE_FLAG_OVERLAPPED harus ditentukan dalam parameter dwFlagsAndAttributes dari panggilan CreateFile agar DeviceHandle memiliki karakteristik yang diperlukan agar WinUsb_Initialize berfungsi dengan baik.

[out] InterfaceHandle

Menerima handel buram ke antarmuka pertama (default) pada perangkat. Handel ini diperlukan oleh rutinitas WinUSB lainnya yang melakukan operasi pada antarmuka default. Untuk merilis handel, panggil fungsi WinUSB_Free .

Mengembalikan nilai

WinUsb_Initialize mengembalikan TRUE jika operasi berhasil. Jika tidak, rutinitas 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 atau handel yang tidak valid di parameter DeviceHandle ; FILE_FLAG_OVERLAPPED tidak diatur dalam handel file.
ERROR_NOT_ENOUGH_MEMORY
Menunjukkan bahwa tidak ada cukup memori untuk melakukan operasi.
ERROR_BAD_DEVICE
Menunjukkan bahwa deskriptor antarmuka default tidak dapat ditemukan untuk perangkat.

Keterangan

Ketika WinUsb_Initialize dipanggil, pengaturan kebijakan antarmuka diatur ulang ke nilai default.

Panggilan WinUsb_Initialize meminta tumpukan USB yang mendasari untuk berbagai deskriptor dan mengalokasikan memori yang cukup untuk menyimpan data deskriptor yang diambil.

WinUsb_Initialize terlebih dahulu mengambil deskriptor perangkat dan kemudian mendapatkan deskriptor konfigurasi terkait. Dari deskriptor konfigurasi, panggilan memperoleh deskriptor antarmuka terkait dan menyimpannya dalam array. Antarmuka dalam array diidentifikasi oleh indeks berbasis nol. Nilai indeks 0 menunjukkan antarmuka pertama (antarmuka default), nilai 1 menunjukkan antarmuka terkait kedua, dan sebagainya. WinUsb_Initialize mengurai deskriptor antarmuka default untuk deskriptor titik akhir dan informasi cache seperti pipa terkait atau data spesifik status. Handel yang diterima dalam parameter InterfaceHandle adalah penunjuk ke blok memori yang dialokasikan untuk antarmuka pertama dalam array.

Jika aplikasi ingin menggunakan antarmuka lain pada perangkat, aplikasi harus memanggil WinUsb_GetAssociatedInterface, menentukan indeks antarmuka, dan mengambil handel ke blok memori yang dialokasikan untuk antarmuka yang ditentukan.

Persyaratan

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

Lihat juga

WinUSB

Fungsi WinUSB

WinUSB_Free