Поделиться через


Функция WdfUsbTargetDeviceCyclePortSynchronously (wdfusb.h)

[Применяется только к KMDF]

Метод WdfUsbTargetDeviceCyclePortSynchronously переключает питание на USB-порт, к которому подключено указанное устройство.

Синтаксис

NTSTATUS WdfUsbTargetDeviceCyclePortSynchronously(
  [in] WDFUSBDEVICE UsbDevice
);

Параметры

[in] UsbDevice

Дескриптор объекта USB-устройства, полученный при предыдущем вызове WdfUsbTargetDeviceCreateWithParameters.

Возвращаемое значение

WdfUsbTargetDeviceCyclePortSynchronously возвращает значение состояния завершения целевого объекта ввода-вывода, если операция выполнена успешно. В противном случае этот метод может вернуть одно из следующих значений:

Код возврата Описание
STATUS_INVALID_DEVICE_REQUEST
IrQL вызывающего абонента был недопустим.
 

Этот метод также может возвращать другие значения NTSTATUS.

Ошибка проверка возникает, если драйвер предоставляет недопустимый дескриптор объекта.

Комментарии

Выключение питания порта приводит к неожиданному удалению устройства и повторному перечислению. Драйвер может запросить цикл питания после загрузки встроенного ПО на устройство.

Прежде чем платформа переключит USB-порт целевого объекта ввода-вывода, она отменяет все запросы ввода-вывода, которые остаются в очереди целевого объекта ввода-вывода. Драйвер не должен отправлять дополнительные запросы ввода-вывода в целевой объект ввода-вывода до тех пор, пока не будет возвращено значение WdfUsbTargetDeviceCyclePortSynchronously .

Драйвер должен вызвать WdfIoTargetStop , прежде чем вызывать WdfUsbTargetDeviceCyclePortSynchronously.

Дополнительные сведения о методе WdfUsbTargetDeviceCyclePortSynchronously и целевых объектах USB-ввода-вывода см. в разделе Целевые объекты ввода-вывода USB.

Примеры

В следующем примере кода подается питание на USB-порт указанного устройства.

NTSTATUS status;

status = WdfUsbTargetDeviceCyclePortSynchronously(UsbDevice);

Требования

Требование Значение
Целевая платформа Универсальное
Минимальная версия KMDF 1,0
Верхняя часть wdfusb.h (включая Wdfusb.h)
Библиотека Wdf01000.sys (см. раздел Управление версиями библиотеки платформы).
IRQL PASSIVE_LEVEL
Правила соответствия DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), UsbKmdfIrql(kmdf), UsbKmdfIrql2(kmdf), UsbKmdfIrqlExplicit(kmdf)

См. также раздел

WdfUsbTargetDeviceCreateWithParameters