Fungsi WdfUsbTargetDeviceRetrieveInformation (wdfusb.h)
[Berlaku untuk KMDF dan UMDF]
Metode WdfUsbTargetDeviceRetrieveInformation mengambil informasi tentang perangkat USB yang terkait dengan objek perangkat USB kerangka kerja tertentu.
Sintaks
NTSTATUS WdfUsbTargetDeviceRetrieveInformation(
[in] WDFUSBDEVICE UsbDevice,
[in, out] PWDF_USB_DEVICE_INFORMATION Information
);
Parameter
[in] UsbDevice
Handel ke objek perangkat USB yang diperoleh dari panggilan sebelumnya ke WdfUsbTargetDeviceCreateWithParameters.
[in, out] Information
Penunjuk ke struktur WDF_USB_DEVICE_INFORMATION yang dialokasikan penelepon yang menerima informasi perangkat USB.
Nilai kembali
WdfUsbTargetDeviceRetrieveInformation mengembalikan STATUS_SUCCESS jika operasi berhasil. Jika tidak, metode ini dapat mengembalikan salah satu nilai berikut:
Menampilkan kode | Deskripsi |
---|---|
|
Parameter yang tidak valid terdeteksi. |
Metode ini juga mungkin mengembalikan nilai NTSTATUS lainnya.
Pemeriksaan bug terjadi jika driver menyediakan handel objek yang tidak valid.
Keterangan
Untuk informasi selengkapnya tentang metode WdfUsbTargetDeviceRetrieveInformation dan target I/O USB, lihat Target I/O USB.
Dalam kerangka kerja versi 1.11 dan yang lebih baru, driver dapat memanggil WdfUsbTargetDeviceQueryUsbCapability untuk mengambil kecepatan operasi perangkat.
Contoh
Contoh kode berikut adalah bagian dari fungsi panggilan balik EvtDevicePrepareHardware yang membuat objek perangkat USB, menginisialisasi struktur WDF_USB_DEVICE_INFORMATION , dan memanggil WdfUsbTargetDeviceRetrieveInformation.
NTSTATUS
MyEvtDevicePrepareHardware(
IN WDFDEVICE Device,
IN WDFCMRESLIST ResourceList,
IN WDFCMRESLIST ResourceListTranslated
)
{
NTSTATUS status;
PMY_DEVICE_CONTEXT pMyDeviceContext;
WDF_USB_DEVICE_CREATE_CONFIG Config;
pMyDeviceContext = GetDeviceContext(Device);
// If object handle is not NULL, MyEvtDevicePrepareHardware
// was called previously and the handle is still valid.
if (pMyDeviceContext->UsbDevice != NULL) {
return STATUS_SUCCESS;
}
WDF_USB_DEVICE_CREATE_CONFIG_INIT(
&Config,
USBD_CLIENT_CONTRACT_VERSION_602
);
status = WdfUsbTargetDeviceCreateWithParameters(
Device,
&Config,
WDF_NO_OBJECT_ATTRIBUTES,
&pMyDeviceContext->UsbDevice
);
if (!NT_SUCCESS(status)) {
return status;
}
WDF_USB_DEVICE_INFORMATION_INIT(&deviceInfo);
status = WdfUsbTargetDeviceRetrieveInformation(
pDeviceContext->UsbDevice,
&deviceInfo
);
...
}
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) |