Функция WdfUsbTargetDeviceCyclePortSynchronously (wdfusb.h)
[Применимо только к KMDF]
Метод WdfUsbTargetDeviceCyclePortSynchronous использует USB-порт, к которому подключено указанное устройство.
Синтаксис
NTSTATUS WdfUsbTargetDeviceCyclePortSynchronously(
[in] WDFUSBDEVICE UsbDevice
);
Параметры
[in] UsbDevice
Дескриптор объекта USB-устройства, полученный из предыдущего вызова WdfUsbTargetDeviceCreateWithParameters.
Возвращаемое значение
WdfUsbTargetDeviceCyclePortSynchronous возвращает значение состояния завершения целевого объекта ввода-вывода, если операция завершается успешно. В противном случае этот метод может вернуть одно из следующих значений:
Возвращаемый код | Описание |
---|---|
|
IrQL вызывающего абонента был недопустим. |
Этот метод также может возвращать другие значения NTSTATUS.
Ошибка возникает, если драйвер предоставляет недопустимый дескриптор объекта.
Замечания
Питание велоспорт порта приводит к неожиданному удалению и повторному перечислению устройства. Драйвер может запросить цикл питания после загрузки встроенного ПО на устройство.
Перед циклом платформы USB-порт целевого объекта ввода-вывода он отменяет все запросы ввода-вывода, оставшиеся в очереди целевого объекта ввода-вывода. Драйвер не должен отправлять дополнительные запросы ввода-вывода в целевой объект ввода-вывода, пока WdfUsbTargetDeviceCyclePortSynchronous.
Драйвер должен вызывать WdfIoTargetStop перед вызовом WdfUsbTargetDeviceCyclePortSynchronous.
Дополнительные сведения о методе WdfUsbTargetDeviceCyclePortSynchronous и целевых объектов USB-ввода-вывода см. в целевых объектов USB-ввода-вывода.
Примеры
В следующем примере кода питание циклирует USB-порт указанного устройства.
NTSTATUS status;
status = WdfUsbTargetDeviceCyclePortSynchronously(UsbDevice);
Требования
Требование | Ценность |
---|---|
целевая платформа | Всеобщий |
минимальная версия KMDF | 1.0 |
заголовка | wdfusb.h (include Wdfusb.h) |
библиотеки | Wdf01000.sys (см. управление версиями библиотеки Платформы).) |
IRQL | PASSIVE_LEVEL |
правил соответствия DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), UsbKmdfIrql(kmdf), UsbKmdfIrql2(kmdf), UsbKmdfIrqlExplicit(kmdf) |