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 值。
如果驱动程序提供无效的对象句柄,则会发生 bug 检查。
言论
有关 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) |