Windows System Software -- Consulting, Training, Development -- Unique Expertise, Guaranteed Results

Before Posting...
Please check out the Community Guidelines in the Announcements and Administration Category.

[SPAM]: Re: [SPAM]: How to Trigger a USB Host Reset of Device?

Tim_RobertsTim_Roberts Member - All Emails Posts: 13,022
On Jun 3, 2018, at 6:11 PM, xxxxx@gmail.com <xxxxx@lists.osr.com> wrote:
>
> Per http://microchipdeveloper.com/usb:reset-suspend-resume, which
> references the USB specification, a host can issue a device a reset
> command by holding both D- and D+ low for 10ms.

The HOST cannot do this. It has to come from a hub, since it is specific to a port. The hub is commanded by the host, but it happens farther away from the host than the host controller.


> However per a past thread about USB DFU and device resets
> (https://www.osronline.com/showthread.cfm?link=252223) seems to imply
> that Windows does not expose this functionality for some reason. Per
> the documentation for IOCTL_USB_HUB_CYCLE_PORT it was unavailable in
> some versions of Windows.

Very old versions of Windows used IOCTL_USB_HUB_RESET_PORT as the "power cycle" signal. CYCLE has now been separated out, and RESET does a software-oriented reset.


> It is my understanding these versions of Windows are thus noncompliant
> with the USB specification.

That's just imaginative nonsense. The USB specification does not say what functionality the operating system has to expose. Besides, the power cycling ability is available in all versions.


> Further, it is not very clear to me if any
> IOCTLs actually generate the condition described by the standard or a
> condition that provokes reenumeration as is intended by the DFU
> specification. There is no clear distinction about what is being reset
> for some USB IOCTLs. Some do specifically mention they only reset
> internal structures.

Right. IOCTL_USB_HUB_RESET_PORT is an internal structure thing. IOCTL_USB_HUB_CYCLE_PORT sends a reset request to the hub. It is the hub that executes the actual disconnect sequence, not Windows, not the host controller.


> Can anyone provide some clarification? I have filed a documentation
> bug at https://github.com/MicrosoftDocs/windows-driver-docs-ddi/issues/97
> but this may be a more serious issue.

In what way do you believe the documentation is flawed?

Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Tim Roberts, [email protected]
Providenza & Boekelheide, Inc.

Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Upcoming OSR Seminars
Developing Minifilters 29 July 2019 OSR Seminar Space
Writing WDF Drivers 23 Sept 2019 OSR Seminar Space
Kernel Debugging 21 Oct 2019 OSR Seminar Space
Internals & Software Drivers 18 Nov 2019 Dulles, VA