Функция WdfUsbTargetDeviceRetrieveInformation (wdfusb.h)
[Относится к KMDF и UMDF]
Метод WdfUsbTargetDeviceRetrieveInformation извлекает сведения о USB-устройстве, связанном с указанным объектом USB-устройства платформы.
Синтаксис
NTSTATUS WdfUsbTargetDeviceRetrieveInformation(
[in] WDFUSBDEVICE UsbDevice,
[in, out] PWDF_USB_DEVICE_INFORMATION Information
);
Параметры
[in] UsbDevice
Дескриптор объекта USB-устройства, полученный при предыдущем вызове WdfUsbTargetDeviceCreateWithParameters.
[in, out] Information
Указатель на структуру, выделенную вызывающим объектом WDF_USB_DEVICE_INFORMATION , которая получает сведения об устройстве USB.
Возвращаемое значение
WdfUsbTargetDeviceRetrieveInformation возвращает STATUS_SUCCESS, если операция выполнена успешно. В противном случае этот метод может вернуть одно из следующих значений:
Код возврата | Описание |
---|---|
|
Обнаружен недопустимый параметр. |
Этот метод также может возвращать другие значения NTSTATUS.
Ошибка проверка возникает, если драйвер предоставляет недопустимый дескриптор объекта.
Комментарии
Дополнительные сведения о методе WdfUsbTargetDeviceRetrieveInformation и целевых объектах USB-ввода-вывода см. в разделе Целевые объекты ввода-вывода USB.
В версии платформы 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) |