WdfUsbTargetDeviceCyclePortSynchronously function (wdfusb.h)

[Applies to KMDF only]

The WdfUsbTargetDeviceCyclePortSynchronously method power-cycles the USB port to which a specified device is attached.

Syntax

NTSTATUS WdfUsbTargetDeviceCyclePortSynchronously(
  [in] WDFUSBDEVICE UsbDevice
);

Parameters

[in] UsbDevice

A handle to a USB device object that was obtained from a previous call to WdfUsbTargetDeviceCreateWithParameters.

Return value

WdfUsbTargetDeviceCyclePortSynchronously returns the I/O target's completion status value if the operation succeeds. Otherwise, this method might return one of the following values:

Return code Description
STATUS_INVALID_DEVICE_REQUEST
The caller's IRQL was invalid.
 

This method also might return other NTSTATUS values.

A bug check occurs if the driver supplies an invalid object handle.

Remarks

Power-cycling a port causes the device to be surprise-removed and re-enumerated. A driver might request a power cycle after it has loaded firmware into a device.

Before the framework cycles the I/O target's USB port, it cancels all I/O requests that remain in the I/O target's queue. The driver must not send additional I/O requests to the I/O target until WdfUsbTargetDeviceCyclePortSynchronously returns.

The driver must call WdfIoTargetStop before it calls WdfUsbTargetDeviceCyclePortSynchronously.

For more information about the WdfUsbTargetDeviceCyclePortSynchronously method and USB I/O targets, see USB I/O Targets.

Examples

The following code example power-cycles a specified device's USB port.

NTSTATUS status;

status = WdfUsbTargetDeviceCyclePortSynchronously(UsbDevice);

Requirements

Requirement Value
Target Platform Universal
Minimum KMDF version 1.0
Header wdfusb.h (include Wdfusb.h)
Library Wdf01000.sys (see Framework Library Versioning.)
IRQL PASSIVE_LEVEL
DDI compliance rules DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), UsbKmdfIrql(kmdf), UsbKmdfIrql2(kmdf), UsbKmdfIrqlExplicit(kmdf)

See also

WdfUsbTargetDeviceCreateWithParameters