SAFE UNDOCK INDICATION FOR PORT REPLICATOR.
Original Publication Date: 2010-Sep-30
Included in the Prior Art Database: 2010-Sep-30
John W. Nicholson: INVENTOR [+1]
With USB attach docks and docks which are actually port others about which the OS is unaware, there is no detach mechanism to stop and disconnect devices safely. This can cause problems with automatic backup to external storage devices (network attach, USB, eSATA, 1394, etc), especially ports on the dock which are just pass-through on the dock connector (i.e., there is no device on the dock). This publication describes a solution for implementing an indicator to help avoid these problems.
Definitions for terms in this disclosure:
- “True dock” is one that notifies the operating system of their presence using the standard ACPI mechanism.
- “Port replicator”, while may physically appear to be a dock, do not tell the operating system of their presence.
On true docks, there are two buttons. Button one is an "undock request" button, which is used to tell the operating system that the user wants to undock. After this button is pressed, Windows issues QUERY_REMOVE_DEVICE PNP IRPs to any devices associated with the dock (this is handled through the dock profile). If any device cannot support removal at this time, the driver can respond with a no. This
is identical to what is done via the "Safely Remove Hardware" tray icon. Button two is a physical eject button.
There are four indicator lights on true docks, two for each button. See the table below for the indicator light behavior. ("Logically Docked" means the OS thinks you are docked. After a successful undock request, logically docked is NO).
On Port Replicators, there is one button (eject), and no indicator lights. Since the operating system is not aware of the presence of the dock, it simply sees that there is a USB hub attached, which is handled by the PNP manager just like attaching a USB hub to a system USB port.
First problem addressed:
Let's say a user has an external USB HDD attached to a USB port on their dock. On this HDD they store their e-mail archive, and that this file transfer is taking place when the user wants to undock.
On a True Dock, the user would issue an undock request, and since there is a file transfer going on, the Microsoft USB mass storage driver would return an error status to the QUERY_REMOVE_DEVICE.
On a Port Replicator, where there is no undock action to request, the user would simply eject and corrupt their mail archive file. This is the first problem addressed.
Existing solutions to problem 1:
An astute user would use the "Safely Remove Hardware" tray icon to remove the external USB HDD, which would be denied in the same way as the undock request.
An application could exist that would "know" what device(s) were attached to the dock, and issue the QUERY_REMOVE_DEVICE. That is, a software undock request application that is in essence re-implementation of the ACPI specification for docks.
Second problem addressed:
Using the same scenario above, after the QUERY_REMOVE_DEVICE has failed (either by the undock request on True Docks, or manually via "Safely Remove...