WdfUsbTargetDeviceRetrieveInformation 函式 (wdfusb.h)
[適用於 KMDF 和 UMDF]
WdfUsbTargetDeviceRetrieveInformation 方法會擷取與指定架構 USB 裝置對象相關聯的 USB 裝置相關信息。
語法
NTSTATUS WdfUsbTargetDeviceRetrieveInformation(
[in] WDFUSBDEVICE UsbDevice,
[in, out] PWDF_USB_DEVICE_INFORMATION Information
);
參數
[in] UsbDevice
從先前呼叫 WdfUsbTargetDeviceCreateWithParameters 取得之 USB 裝置物件的句柄。
[in, out] Information
接收 USB 裝置資訊的呼叫端配置 WDF_USB_DEVICE_INFORMATION 結構的指標。
傳回值
如果作業成功,WdfUsbTargetDeviceRetrieveInformation 會傳回STATUS_SUCCESS。 否則,這個方法可以傳回下列其中一個值:
傳回碼 | 描述 |
---|---|
|
偵測到無效的參數。 |
此方法也可能 傳回其他NTSTATUS 值。
如果驅動程式提供無效的物件句柄,就會發生錯誤檢查。
言論
如需 WdfUsbTargetDeviceRetrieveInformation 方法和 USB I/O 目標的詳細資訊,請參閱 USB I/O 目標。
在 1.11 版和更新版本中,驅動程式可以呼叫 WdfUsbTargetDeviceQueryUsbCapability 來擷取裝置的作業速度。
例子
下列程式代碼範例是 EvtDevicePrepareHardware 回呼函式的一部分,該函式會建立 USB 裝置物件、初始化 WDF_USB_DEVICE_INFORMATION 結構,以及呼叫 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
);
...
}
要求
要求 | 價值 |
---|---|
目標平臺 | 普遍 |
最低 KMDF 版本 | 1.0 |
最低 UMDF 版本 | 2.0 |
標頭 | wdfusb.h (包括 Wdfusb.h) |
連結庫 | Wdf01000.sys (KMDF):WUDFx02000.dll (UMDF) |
IRQL | <=DISPATCH_LEVEL |
DDI 合規性規則 | DriverCreate(kmdf),KmdfIrql(kmdf),KmdfIrql2(kmdf),KmdfIrqlExplicit(kmdf),UsbKmdfIrql(kmdf),UsbKmdfIrql2(kmdf),UsbKmdfIrqlExplicit(kmdf) |