Metode IWDFUsbTargetDevice::RetrieveDescriptor (wudfusb.h)
[Peringatan: UMDF 2 adalah versi terbaru UMDF dan pengganti UMDF 1. Semua driver UMDF baru harus ditulis menggunakan UMDF 2. Tidak ada fitur baru yang ditambahkan ke UMDF 1 dan ada dukungan terbatas untuk UMDF 1 pada versi Windows 10 yang lebih baru. Driver Universal Windows harus menggunakan UMDF 2. Untuk informasi selengkapnya, lihat Mulai menggunakan UMDF.]
Metode RetrieveDescriptor mengambil deskriptor USB, yang dapat menjelaskan perangkat, konfigurasi, atau string.
Sintaks
HRESULT RetrieveDescriptor(
[in] UCHAR DescriptorType,
[in] UCHAR Index,
[in] USHORT LanguageID,
[in, out] ULONG *BufferLength,
[out] PVOID Buffer
);
Parameter
[in] DescriptorType
Nilai yang menentukan jenis deskriptor yang akan dikembalikan. Parameter ini sesuai dengan bidang bDescriptorType dari deskriptor perangkat standar, yang nilainya dijelaskan dalam spesifikasi Universal Serial Bus . (Sumber daya ini mungkin tidak tersedia dalam beberapa bahasa
dan negara.) Beberapa nilai ini tercantum dalam deskripsi anggota DescriptorType dari struktur _URB_CONTROL_DESCRIPTOR_REQUEST .
[in] Index
Indeks deskriptor, sesuai dengan spesifikasi Universal Serial Bus . (Sumber daya ini mungkin tidak tersedia dalam beberapa bahasa
dan negara.)
[in] LanguageID
Pengidentifikasi bahasa, jika driver UMDF meminta deskriptor string; jika tidak, parameter ini adalah nol.
[in, out] BufferLength
Penunjuk ke variabel yang, pada input, berisi ukuran, dalam byte, dari buffer yang dituju buffer . Jika operasi berhasil, variabel menerima jumlah byte yang disalin kerangka kerja ke dalam buffer.
[out] Buffer
Penunjuk ke buffer yang disediakan penelepon yang menerima deskriptor USB. Jenis buffer harus cocok dengan nilai yang ditentukan dalam DescriptorType.
Nilai kembali
RetrieveDescriptor mengembalikan salah satu nilai berikut:
Menampilkan kode | Deskripsi |
---|---|
|
RetrieveDescriptor berhasil mengambil deskriptor USB. |
|
RetrieveDescriptor mengalami kegagalan alokasi. |
|
Nilai ini sesuai dengan kode kesalahan yang dikembalikan API WinUsb. |
Keterangan
Untuk informasi tentang jenis deskriptor yang valid yang dapat diteruskan driver UMDF untuk parameter DescriptorType , lihat fungsi WinUsb_GetDescriptor .
Metode RetrieveDescriptor menghasilkan permintaan UMDF dan secara sinkron mengirim permintaan ke target I/O.
Contoh
Contoh kode berikut mengambil pendeskripsi konfigurasi USB.
HRESULT
CUmdfHidDevice::RetrieveConfigDescriptor(
__out_bcount(ConfigDescriptorCb) PUSB_CONFIGURATION_DESCRIPTOR *ConfigDescriptor,
__out ULONG *ConfigDescriptorCb
)
{
ULONG descriptorCb = sizeof(USB_CONFIGURATION_DESCRIPTOR);
USB_CONFIGURATION_DESCRIPTOR descriptorHeader;
PBYTE descriptorBuffer;
HRESULT hr;
//
// Get the configuration descriptor at index 0
//
hr = m_UsbTargetDevice->RetrieveDescriptor(
USB_CONFIGURATION_DESCRIPTOR_TYPE,
0,
0,
&descriptorCb,
&descriptorHeader
);
//
// Store the buffer in the output parameter, or delete it.
//
if (SUCCEEDED(hr)) {
*ConfigDescriptor = (PUSB_CONFIGURATION_DESCRIPTOR) (descriptorHeader);
*ConfigDescriptorCb = descriptorCb;
}
else {
delete[] descriptorHeader;
}
return hr;
}
Persyaratan
Persyaratan | Nilai |
---|---|
Akhir dukungan | Tidak tersedia di UMDF 2.0 dan yang lebih baru. |
Target Platform | Desktop |
Versi UMDF minimum | 1,5 |
Header | wudfusb.h (termasuk Wudfusb.h) |
DLL | WUDFx.dll |