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 |
---|---|
|
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) |