通过


WdfUsbTargetDeviceResetPortSynchronously 函数 (wdfusb.h)

[适用于 KMDF 和 UMDF]

WdfUsbTargetDeviceResetPortSynchronously 方法重置与指定 USB 设备关联的 USB 端口。

语法

NTSTATUS WdfUsbTargetDeviceResetPortSynchronously(
  [in] WDFUSBDEVICE UsbDevice
);

参数

[in] UsbDevice

从上一次调用 WdfUsbTargetDeviceCreateWithParameters获取的 USB 设备对象的句柄。

返回值

WdfUsbTargetDeviceResetPortSynchronously 如果作成功,则返回 USB I/O 目标的完成状态值。 否则,此方法可以返回以下值之一:

返回代码 描述
STATUS_INVALID_DEVICE_REQUEST
调用方 IRQL 无效。
 

此方法还可以 返回其他NTSTATUS 值。

如果驱动程序提供无效的对象句柄,则会发生 bug 检查。

言论

WdfUsbTargetDeviceResetPortSynchronously 方法通过发送 IOCTL_INTERNAL_USB_RESET_PORT 请求来重置 USB 端口。

在框架重置 I/O 目标的 USB 端口之前,它会取消 I/O 目标队列中保留的所有 I/O 请求。 在 WdfUsbTargetDeviceResetPortSynchronously 返回之前,驱动程序不得向 I/O 目标发送其他 I/O 请求。

驱动程序必须先调用 WdfIoTargetStop,然后才能调用 WdfUsbTargetDeviceResetPortSynchronouslyWdfUsbTargetDeviceResetPortSynchronously 返回后,驱动程序可以调用 WdfIoTargetStart

成功重置作后,总线驱动程序将重新选择配置和设备在重置作发生之前拥有的任何备用接口设置。

有关 WdfUsbTargetDeviceResetPortSynchronously 方法和 USB I/O 目标的详细信息,请参阅 USB I/O 目标

例子

下面的代码示例重置指定的设备的 USB 端口。

NTSTATUS status;

status = WdfUsbTargetDeviceResetPortSynchronously(UsbDevice);

要求

要求 价值
目标平台 普遍
最低 KMDF 版本 1.0
最低 UMDF 版本 2.0
标头 wdfusb.h (包括 Wdfusb.h)
Wdf01000.sys(KMDF):WUDFx02000.dll (UMDF)
IRQL PASSIVE_LEVEL
DDI 符合性规则 DriverCreate(kmdf)KmdfIrql(kmdf)KmdfIrql2(kmdf),KmdfIrqlExplicit(kmdf)、UsbKmdfIrql(kmdf)UsbKmdfIrql2(kmdf)、UsbKmdfIrqlExplicit(kmdf)

另请参阅

WdfUsbTargetDeviceCreateWithParameters