WdfUsbTargetDeviceResetPortSynchronously function (wdfusb.h)

[Applies to KMDF and UMDF]

The WdfUsbTargetDeviceResetPortSynchronously method resets the USB port that is associated with the specified USB device.

Syntax

NTSTATUS WdfUsbTargetDeviceResetPortSynchronously(
  [in] WDFUSBDEVICE UsbDevice
);

Parameters

[in] UsbDevice

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

Return value

WdfUsbTargetDeviceResetPortSynchronously returns the USB I/O target's completion status value if the operation succeeds. Otherwise, this method can 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

The WdfUsbTargetDeviceResetPortSynchronously method resets the USB port by sending an IOCTL_INTERNAL_USB_RESET_PORT request.

Before the framework resets 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 WdfUsbTargetDeviceResetPortSynchronously returns.

The driver must call WdfIoTargetStop before it calls WdfUsbTargetDeviceResetPortSynchronously. After WdfUsbTargetDeviceResetPortSynchronously returns, the driver can call WdfIoTargetStart.

After a successful reset operation, the bus driver reselects the configuration and any alternate interface settings that the device had before the reset operation occurred.

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

Examples

The following code example resets a specified device's USB port.

NTSTATUS status;

status = WdfUsbTargetDeviceResetPortSynchronously(UsbDevice);

Requirements

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

See also

WdfUsbTargetDeviceCreateWithParameters