Функция WdfUsbTargetDeviceWdmGetConfigurationHandle (wdfusb.h)
[Относится только к KMDF]
Метод WdfUsbTargetDeviceWdmGetConfigurationHandle возвращает дескриптор типа USBD_CONFIGURATION_HANDLE, связанный с текущей конфигурацией указанного USB-устройства.
Синтаксис
USBD_CONFIGURATION_HANDLE WdfUsbTargetDeviceWdmGetConfigurationHandle(
[in] WDFUSBDEVICE UsbDevice
);
Параметры
[in] UsbDevice
Дескриптор объекта USB-устройства, полученный при предыдущем вызове WdfUsbTargetDeviceCreateWithParameters.
Возвращаемое значение
Если драйвер выбрал конфигурацию для устройства, WdfUsbTargetDeviceWdmGetConfigurationHandle возвращает USBD_CONFIGURATION_HANDLE типизированный дескриптор устройства. В противном случае метод возвращает значение NULL.
Ошибка проверка возникает, если драйвер предоставляет недопустимый дескриптор объекта.
Комментарии
Драйвер на основе платформы должен получить USBD_CONFIGURATION_HANDLE типизированный дескриптор только в том случае, если он создает URB , содержащий структуру _URB_SELECT_INTERFACE .
Драйвер может вызвать WdfUsbTargetDeviceWdmGetConfigurationHandle после вызова WdfUsbTargetDeviceSelectConfig. Дескриптор типа USBD_CONFIGURATION_HANDLE, возвращаемый WdfUsbTargetDeviceWdmGetConfigurationHandle , действителен до тех пор, пока драйвер не вызовет WdfUsbTargetDeviceSelectConfig или объект USB-устройства не будет удален. Если драйвер предоставляет функцию EvtCleanupCallback для объекта USB-устройства и если объект удаляется до того, как драйвер снова вызовет WdfUsbTargetDeviceSelectConfig , дескриптор действителен до тех пор, пока функция EvtCleanupCallback объекта не вернется.
Дополнительные сведения о методе WdfUsbTargetDeviceWdmGetConfigurationHandle и целевых объектах USB-ввода-вывода см. в разделе Usb I/O Targets.
Примеры
В следующем примере кода получается дескриптор текущей конфигурации указанного USB-устройства.
USBD_CONFIGURATION_HANDLE deviceConfigHdl;
deviceConfigHdl = WdfUsbTargetDeviceWdmGetConfigurationHandle(UsbDevice);
Требования
Требование | Значение |
---|---|
Целевая платформа | Универсальное |
Минимальная версия KMDF | 1,0 |
Верхняя часть | wdfusb.h (включая Wdfusb.h) |
Библиотека | Wdf01000.sys (см. раздел Управление версиями библиотеки Платформы). |
IRQL | <=DISPATCH_LEVEL |
Правила соответствия DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), UsbKmdfIrql(kmdf), UsbKmdfIrql2(kmdf), UsbKmdfIrqlExplicit(kmdf) |