summaryrefslogtreecommitdiff
path: root/usb
diff options
context:
space:
mode:
Diffstat (limited to 'usb')
-rw-r--r--usb/kmdf_enumswitches/ReadMe.md2
-rw-r--r--usb/umdf2_fx2/ReadMe.md333
-rw-r--r--usb/umdf_filter_umdf/ReadMe.md34
-rw-r--r--usb/umdf_fx2/ReadMe.md15
-rw-r--r--usb/usbview/ReadMe.md40
5 files changed, 321 insertions, 103 deletions
diff --git a/usb/kmdf_enumswitches/ReadMe.md b/usb/kmdf_enumswitches/ReadMe.md
index 2107d9b8..d6a7ee9f 100644
--- a/usb/kmdf_enumswitches/ReadMe.md
+++ b/usb/kmdf_enumswitches/ReadMe.md
@@ -17,7 +17,7 @@ To test the device, follow these steps:
5. Flip the switches on the OSR USB-FX-2 hardware board and watch the raw PDO entries appear and disappear under **Sample Device** in Device Manager.
6. Right-click a raw PDO entry, select **Properties**, and then click the **Events** tab. Under **Information**, examine the hardware ID for the PDO. It should be something like this:
- ``` {.syntax xml:space="preserve"}
+ ```
6FDE7521-1B65-48ae-B628-80BE62016026}\OsrUsbFxRawPdo\6&227995e2&0&08
```
diff --git a/usb/umdf2_fx2/ReadMe.md b/usb/umdf2_fx2/ReadMe.md
index 291e91cb..8e7e8db1 100644
--- a/usb/umdf2_fx2/ReadMe.md
+++ b/usb/umdf2_fx2/ReadMe.md
@@ -1,74 +1,323 @@
-Sample Function Driver for OSR USB-FX2 (UMDF Version 2)
-=======================================================
+Sample UMDF Function Driver for OSR USB-FX2 (UMDF Version 1)
+============================================================
-The umdf2\_fx2 sample is a User-Mode Driver Framework (UMDF) version 2 driver for the OSR USB-FX2 device.
-
-The specification for the device is at <http://www.osronline.com/hardware/OSRFX2_32.pdf>. The driver and sample device metadata also work with the [Custom driver access](http://go.microsoft.com/fwlink/p/?LinkID=248288) sample.
+The umdf\_fx2 sample is a User-Mode Driver Framework (UMDF) driver for the OSR USB-FX2 device. It includes a test app and sample device metadata, and supports impersonation and idle power down.
## Universal Windows Driver Compliant
This sample builds a Universal Windows Driver. It uses only APIs and DDIs that are included in OneCoreUAP.
-Set the configuration and platform in Visual Studio
----------------------------------------------------
+The sample can also be used with the CustomDeviceAccess MSDK sample. The sample demonstrates how to perform bulk and interrupt data transfers to an USB device. The specification for the device is at <http://www.osronline.com/hardware/OSRFX2_32.pdf>. The driver and sample device metadata also work with the [Custom driver access](http://go.microsoft.com/fwlink/p/?LinkID=248288) sample.
+
+The osrusbfx2 sample is divided into three samples:
+* **WDF Sample Driver Learning Lab for OSR USB-FX2**: This sample is a series of iterative drivers that demonstrate how to write a "Hello World" driver and adds additional features in each step.
+* **kmdf\_fx2**: This sample is the final version of kernel-mode wdf\_osrfx2 driver. The sample demonstrates KMDF methods.
+* **umdf\_fx2**: This sample is the final version of the user-mode driver **wdf\_osrfx2**. The sample demonstrates UMDF methods.
+
+Overview
+--------
+
+Here is the overview of the device:
+
+- The device is based on the development board supplied with the Cypress EZ-USB FX2 Development Kit (CY3681).
+- It contains 1 interface and 3 endpoints (Interrupt IN, Bulk Out, Bulk IN).
+- Firmware supports vendor commands to query or set LED Bar graph display and 7-segment LED display, and to query toggle switch states.
+- Interrupt Endpoint:
+ - Sends an 8-bit value that represents the state of the switches.
+ - Sent on startup, resume from suspend, and whenever the switch pack setting changes.
+ - Firmware does not de-bounce the switch pack.
+ - One switch change can result in multiple bytes being sent.
+ - Bits are in the reverse order of the labels on the pack (for example, bit 0x80 is labeled 1 on the pack).
+- Bulk Endpoints are configured for loopback:
+ - The device moves data from IN endpoint to OUT endpoint.
+ - The device does not change the values of the data it receives nor does it internally create any data.
+ - Endpoints are always double buffered.
+ - Maximum packet size depends on speed (64 full speed, 512 high speed).
+
+Testing the driver
+------------------
+
+You can use the [Custom driver access](http://go.microsoft.com/fwlink/p/?LinkID=248288) sample to test the umdf\_fx2 sample.
+
+This sample also includes a test application, osrusbfx2.exe, that you can use to test the device. This console application enumerates the interface registered by the driver and opens the device to send read, write, or IOCTL requests based on the command line options.
+
+Usage for Read/Write test:
+
+- -r [*n*], where *n* is number of bytes to read.
+- -w [*n*], where *n* is number of bytes to write.
+- -c [*n*], where *n* is number of iterations (default = 1).
+- -v, shows verbose read data.
+- -p, plays with Bar Display, Dip Switch, 7-Segment Display.
+- -a, performs asynchronous I/O operation.
+- -u, dumps USB configuration and pipe information.
+- -f \<*filename*\> [*interval-seconds*], where *interval-seconds* is a delay in milliseconds, to send a text file to the seven-segment display (UMDF only)
+
+**Playing with the 7 segment display, toggle switches, and bar graph display**
+
+Use the command **osrusbfx2.exe -p** with options 1 through 9 to set and clear bar graph display, set and get 7 segment state, and read the toggle switch states. The following shows the function options:
+
+1. Light Bar
+2. Clear Bar
+3. Light entire Bar graph
+4. Clear entire Bar graph
+5. Get bar graph state
+6. Get Switch state
+7. Get Switch Interrupt Message
+8. Get 7 segment state
+9. Set 7 segment state
+10. Reset the device
+11. Re-enumerate the device
+
+0. Exit
+
+Selection:
+
+**Reset and re-enumerate the device**
+
+Use the command **osrusbfx2.exe -p** with options 10 and 11 to either reset the device or re-enumerate the device.
+
+**Read and write to bulk endpoints**
+
+The following commands send read and write requests to the device's bulk endpoint.
+
+- `osrusbfx2.exe -r 64`
+
+ The preceding command reads 64 bytes to the bulk IN endpoint.
+
+- `osrusbfx2.exe -w 64 `
+
+ The preceding command writes 64 bytes to the bulk OUT endpoint.
+
+- `osrusbfx2.exe -r 64 -w 64 -c 100 -v`
+
+ The preceding command first writes 64 bytes of data to bulk OUT endpoint (Pipe 1), then reads 64 bytes from bulk IN endpoint (Pipe 2), and then compares the read buffer with write buffer to see if they match. If the buffer contents match, it repeats this operation 100 times.
+
+- `osrusbfx2.exe -a`
+
+ The preceding command reads and writes to the device asynchronously in an infinite loop.
+
+The bulk endpoints are double buffered. Depending on the operational speed (full or high), the buffer size is either 64 bytes or 512 bytes, respectively. A request to read data does not complete if the buffers are empty. If the buffers are full, a request to write data does not complete until the buffers are emptied. When you are doing a synchronous read, make sure the endpoint buffer has data (for example, when you send 512 bytes write request to the device operating in full speed mode). Because the endpoints are double buffered, the total buffer capacity is 256 bytes. The first 256 bytes fills the buffer and the write request waits in the USB stack until the buffers are emptied. If you run another instance of the application to read 512 bytes of data, both write and read requests complete successfully.
+
+**Displaying descriptors**
+
+The following command displays all the descriptors and endpoint information.
+
+**osrusbfx2.exe -u**
+
+If the device is operating in high speed mode, you get the following information:
+
+`===================`
+
+`USB_CONFIGURATION_DESCRIPTOR`
+
+`bLength = 0x9, decimal 9`
+
+`bDescriptorType = 0x2 ( USB_CONFIGURATION_DESCRIPTOR_TYPE )`
+
+`wTotalLength = 0x27, decimal 39`
+
+`bNumInterfaces = 0x1, decimal 1`
+
+`bConfigurationValue = 0x1, decimal 1`
+
+`iConfiguration = 0x4, decimal 4`
+
+`bmAttributes = 0xa0 ( USB_CONFIG_BUS_POWERED )`
+
+`MaxPower = 0x32, decimal 50`
+
+`-----------------------------`
+
+`USB_INTERFACE_DESCRIPTOR #0`
+
+`bLength = 0x9`
+
+`bDescriptorType = 0x4 ( USB_INTERFACE_DESCRIPTOR_TYPE )`
+
+`bInterfaceNumber = 0x0`
+
+`bAlternateSetting = 0x0`
+
+`bNumEndpoints = 0x3`
+
+`bInterfaceClass = 0xff`
+
+`bInterfaceSubClass = 0x0`
+
+`bInterfaceProtocol = 0x0`
+
+`bInterface = 0x0`
+
+`------------------------------`
+
+`USB_ENDPOINT_DESCRIPTOR for Pipe00`
+
+`bLength = 0x7`
+
+`bDescriptorType = 0x5 ( USB_ENDPOINT_DESCRIPTOR_TYPE )`
+
+`bEndpointAddress= 0x81 ( INPUT )`
+
+`bmAttributes= 0x3 ( USB_ENDPOINT_TYPE_INTERRUPT )`
+
+`wMaxPacketSize= 0x49, decimal 73`
+
+`bInterval = 0x1, decimal 1`
+
+`------------------------------`
+
+`USB_ENDPOINT_DESCRIPTOR for Pipe01`
+
+`bLength = 0x7`
+
+`bDescriptorType = 0x5 ( USB_ENDPOINT_DESCRIPTOR_TYPE )`
+
+`bEndpointAddress= 0x6 ( OUTPUT )`
+
+`bmAttributes= 0x2 ( USB_ENDPOINT_TYPE_BULK )`
+
+`wMaxPacketSize= 0x200, `
+
+`decimal 512 bInterval = 0x0, `
+
+`decimal 0`
+
+`------------------------------`
+
+`USB_ENDPOINT_DESCRIPTOR for Pipe02`
+
+`bLength = 0x7`
+
+`bDescriptorType = 0x5 ( USB_ENDPOINT_DESCRIPTOR_TYPE )`
+
+`bEndpointAddress= 0x88 ( INPUT )`
+
+`bmAttributes= 0x2 ( USB_ENDPOINT_TYPE_BULK )`
+
+`wMaxPacketSize= 0x200, decimal 512`
+
+`bInterval = 0x0, decimal 0`
+
+If the device is operating in low speed mode, you will get the following information:
+
+`===================`
+
+`USB_CONFIGURATION_DESCRIPTOR`
+
+`bLength = 0x9, decimal 9`
+
+`bDescriptorType = 0x2 ( USB_CONFIGURATION_DESCRIPTOR_TYPE )`
+
+`wTotalLength = 0x27, decimal 39`
+
+`bNumInterfaces = 0x1, decimal 1`
+
+`bConfigurationValue = 0x1, decimal 1`
+
+`iConfiguration = 0x3, decimal 3`
+
+`bmAttributes = 0xa0 ( USB_CONFIG_BUS_POWERED )`
+
+`MaxPower = 0x32, decimal 50 `
+
+`-----------------------------`
+
+`USB_INTERFACE_DESCRIPTOR #0`
+
+`bLength = 0x9`
+
+`bDescriptorType = 0x4 ( USB_INTERFACE_DESCRIPTOR_TYPE )`
+
+`bInterfaceNumber = 0x0 bAlternateSetting = 0x0`
+
+`bNumEndpoints = 0x3`
+
+`bInterfaceClass = 0xff`
+
+`bInterfaceSubClass = 0x0`
+
+`bInterfaceProtocol = 0x0`
+
+`bInterface = 0x0`
+
+`------------------------------`
+
+`USB_ENDPOINT_DESCRIPTOR for Pipe00`
+
+`bLength = 0x7`
+
+`bDescriptorType = 0x5 ( USB_ENDPOINT_DESCRIPTOR_TYPE )`
+
+`bEndpointAddress= 0x81 ( INPUT )`
+
+`bmAttributes= 0x3 ( USB_ENDPOINT_TYPE_INTERRUPT )`
+
+`wMaxPacketSize= 0x49, decimal 73`
+
+`bInterval = 0x1, decimal 1`
-In Visual Studio, in Solution Explorer, right click **Solution**, and choose **Configuration Manager**. Set the configuration and the platform. Make sure that the configuration and platform are the same for both the driver project and the package project. Do not check the **Deploy** boxes. Because this solution uses UMDF version 2, you cannot select a configuration earlier than Windows 8.1.
+`------- -----------------------`
-Build the sample using Visual Studio
-------------------------------------
+`USB_ENDPOINT_DESCRIPTOR for Pipe01`
-In Visual Studio, on the **Build** menu, choose **Build Solution**.
+`bLength = 0x7`
-For more information about using Visual Studio to build a driver package, see [Building a Driver](http://msdn.microsoft.com/en-us/library/windows/hardware/ff554644).
+`bDescriptorType = 0x5 ( USB_ENDPOINT_DESCRIPTOR_TYPE )`
-Locate the built driver package
--------------------------------
+`bEndpointAddress= 0x6 ( OUTPUT )`
-In File Explorer, navigate to the folder that contains your built driver package. The location of this folder varies depending on what you set for configuration and platform. For example, if your settings are Win8.1 Debug and x64, the package is in your solution folder under x64\\Win8.1Debug\\Package.
+`bmAttributes= 0x2 ( USB_ENDPOINT_TYPE_BULK )`
-Run the sample
---------------
+`wMaxPacketSize= 0x40, decimal 64`
-The computer where you install the driver is called the *target computer* or the *test computer*. Typically this is a separate computer from where you develop and build the driver package. The computer where you develop and build the driver is called the *host computer*.
+`bInterval = 0x0, decimal 0`
-The process of moving the driver package to the target computer and installing the driver is called *deploying the driver*. You can deploy a driver sample automatically or manually.
+`------------------------------`
-### Automatic deployment (FX2 board)
+`USB_ENDPOINT_DESCRIPTOR for Pipe02`
-Before you automatically deploy a driver, you must provision the target computer. For instructions, see [Configuring a Computer for Driver Deployment, Testing, and Debugging](http://msdn.microsoft.com/en-us/library/windows/hardware/).
+`bLength = 0x7`
-1. Plug in the OSR USB-FX2 board to the target computer.
-2. On the host computer, in Visual Studio, in Solution Explorer, right click **package** (lower case), and choose **Properties**. Navigate to **Configuration Properties \> Driver Install \> Deployment**.
-3. Check **Enable deployment**, and check **Remove previous driver versions before deployment**. For **Target Computer Name**, select the name of a target computer that you provisioned previously. Select **Install and Verify**. Click **OK**.
-4. On the **Build** menu, choose **Deploy Package** or **Build Solution**.
+`bDescriptorType = 0x5 ( USB_ENDPOINT_DESCRIPTOR_TYPE )`
-### Manual deployment (FX2 board)
+`bEndpointAddress= 0x88 ( INPUT )`
-Before you manually deploy a driver, you must turn on test signing and install a certificate on the target computer. You also need to copy the [DevCon](http://msdn.microsoft.com/en-us/library/windows/hardware/ff544707) tool to the target computer. For instructions, see [Preparing a Computer for Manual Driver Deployment](http://msdn.microsoft.com/en-us/library/windows/hardware/dn265571).
+`bmAttributes= 0x2 ( USB_ENDPOINT_TYPE_BULK )`
-1. Copy all of the files in your driver package to a folder on the target computer (for example, c:\\umdf2\_fx2).
-2. Plug in the OSR USB-FX2 board to the target computer. Open a Command Prompt window and enter **dvmgmt** to open Device Manager. In Device Manager, locate the node for the OSR USB-FX2 board. Right click the node, and choose **Properties**. In the **Details** tab, under **Properties**, choose **Hardware Ids**. Note the hardware IDs listed for your FX2 board. One of these IDs should match one of the IDs in the osrusbfx2um.inf file. For example, Device Manager might show an ID of USB\\VID\_0547&PID\_1002, which matches one of the IDs in the [Microsoft.*xxx*] section of osrusbfx2um.inf.
+`wMaxPacketSize= 0x40, decimal 64`
-3. On the target computer, open a Command Prompt window as Administrator. Navigate to your driver package folder, and enter this command:
+`bInterval = 0x0, decimal 0 `
- **devcon update osrusbfx2um.inf"***HardwareID***"**
+Sample Contents
+---------------
- where *HardwareID* is the hardware ID of your FX2 board. Here is an example:
+Folder
- **devcon update osrusbfx2um.inf "USB\\VID\_0547&PID\_1002"**
+Description
-View the driver for the OSR USB-FX2 board in Device Manager
------------------------------------------------------------
+usb\\umdf\_fx2\\driver
-On the target computer, in your Command Prompt window, enter **devmgmt** to open Device Manager. In Device Manager, on the **View** menu, choose **Devices by type**. In the device tree, locate **UMDF 2.0 Sample Driver for OSR Fx2 Learning Kit** (for example, this might be under the **Sample Device** node).
+This directory contains driver code that demonstrates the following functionality:
-In Device Manager, on the **View** menu, choose **Devices by connection**. Locate **UMDF 2.0 Sample Driver for OSR Fx2 Learning Kit** as a child of a USB hub node, which may be contained with the **ACPI x64-based PC** node.
+- Loads the driver and responds to PnP and Power events. You can install, uninstall, disable, enable, suspend, and resume the system.
+- Registers a PnP device interface so that application can open a handle to the device.
+- Implements **IPnpCallbackHardware** interface and initializes USB I/O targets in **IPnpCallbackHardware::OnPrepareHardware** method.
+- Creates a sequential queue for handling IOCTL requests.
+- Adds code to handle the IOCTL to set bar graph display.
+- Creates a parallel queue for handling read and write requests.
+- Retrieves memory from read and write requests, format the requests, and sends them to a USB target.
+- Supports additional IOCTLs to get and set the 7-segment display, get bar graph display, and get config descriptor.
+- Sets power policy for the device.
+- Adds code to indicate that the device is ready by lighting up the period on 7-segment display.
+- Calls **SetupDi** functions to determine the "BusTypeGUID" of the device, and uses impersonation to access resources that only the caller has access to.
+- Shows how to implement idle and wake functionality to make the driver the power policy owner (PPO). The sample achieves this using power-managed queues and UMDF DDIs, AssignS0IdleSettings, and AssignSxWakeSettings.
+- Demonstrates implementation of a continuous reader.
+- Demonstrates the use of impersonation.
-Build the sample using MSBuild
-------------------------------
+usb\\umdf\_fx2\\exe
-As an alternative to building the driver sample in Visual Studio, you can build it in a Visual Studio Command Prompt window. In Visual Studio, on the **Tools** menu, choose **Visual Studio Command Prompt**. In the Visual Studio Command Prompt window, navigate to the folder that has the solution file, umdf2echo.sln. Use the MSBuild command to build the solution. Here is an example:
+This directory contains a test application that can be used to drive the UMDF driver and FX2 device. This is a modified version of the test application for the KMDF Fx2 driver.
-**msbuild /p:configuration=”Win8 Release” /p:platform=”Win32” umdf2\_fx2.sln**
+usb\\umdf\_fx2\\deviceMetadata
-For more information about using MSBuild to build a driver package, see [Building a Driver](http://msdn.microsoft.com/en-us/library/windows/hardware/ff554644).
+This directory contains the device metadata package for the sample. You must copy the device metadata to the system before installing the device. For information on how to update and deploy device metadata, see [Custom driver access sample](http://go.microsoft.com/fwlink/p/?LinkID=248288).
diff --git a/usb/umdf_filter_umdf/ReadMe.md b/usb/umdf_filter_umdf/ReadMe.md
index 56eb02db..b0c7970f 100644
--- a/usb/umdf_filter_umdf/ReadMe.md
+++ b/usb/umdf_filter_umdf/ReadMe.md
@@ -5,8 +5,8 @@ The umdf\_filter\_umdf sample demonstrates how to load a User-Mode Driver Framew
This sample is written for the OSR USB-FX2 Learning Kit. The specification for the device is at <http://www.osronline.com/hardware/OSRFX2_32.pdf>.
-Overview
---------
+### Overview
+
Here is the overview of the device:
@@ -25,33 +25,15 @@ Here is the overview of the device:
- Endpoints are always double buffered.
- Maximum packet size depends on speed (64 full speed, 512 high speed).
-Testing the driver
-------------------
+### Testing the driver
You can test this sample either by using the [Custom driver access](http://go.microsoft.com/fwlink/p/?LinkID=248288) sample application, or by using the osrusbfx2.exe test application. For information on how to build and use the osrusbfx2.exe application, see the test instructions for the [umdf\_fx2](http://msdn.microsoft.com/en-us/library/windows/hardware/) sample.
-Sample Contents
----------------
+### Sample Contents
-<table>
-<colgroup>
-<col width="50%" />
-<col width="50%" />
-</colgroup>
-<thead>
-<tr class="header">
-<th align="left">Folder
-Description</th>
-</tr>
-</thead>
-<tbody>
-<tr class="odd">
-<td align="left">usb\umdf_filter_umdf\umdf_driver
-This directory contains source code for the umdf_fx2 sample driver.</td>
-<td align="left">usb\umdf_filter_umdf\umdf_filter
-This directory contains the UMDF filter driver.</td>
-</tr>
-</tbody>
-</table>
+Folder | Description
+-------|------------
+usb\umdf_filter_umdf\umdf_driver | This directory contains source code for the umdf_fx2 sample driver.
+usb\umdf_filter_umdf\umdf_filter | This directory contains the UMDF filter driver.
diff --git a/usb/umdf_fx2/ReadMe.md b/usb/umdf_fx2/ReadMe.md
index 8b04f98e..2f7f1ded 100644
--- a/usb/umdf_fx2/ReadMe.md
+++ b/usb/umdf_fx2/ReadMe.md
@@ -5,25 +5,24 @@ The umdf\_fx2 sample is a User-Mode Driver Framework (UMDF) driver for the OSR U
The sample can also be used with the CustomDeviceAccess MSDK sample. The sample demonstrates how to perform bulk and interrupt data transfers to an USB device. The specification for the device is at <http://www.osronline.com/hardware/OSRFX2_32.pdf>. The driver and sample device metadata also work with the [Custom driver access](http://go.microsoft.com/fwlink/p/?LinkID=248288) sample.
+The osrusbfx2 sample is divided into three samples:
-Related topics
---------------
+- **WDF Sample Driver Learning Lab for OSR USB-FX2**: This sample is a series of iterative drivers that demonstrate how to write a "Hello World" driver and adds additional features in each step.
-****
-
-[kmdf\_fx2](http://msdn.microsoft.com/en-us/library/windows/hardware/)
+- **kmdf\_fx2**: This sample is the final version of kernel-mode **wdf\_osrfx2** driver. The sample demonstrates KMDF methods.
+- **umdf\_fx2**: This sample is the final version of the user-mode driver **wdf\_osrfx2**. The sample demonstrates UMDF methods.
Build the sample
----------------
-The default Solution build configuration is Windows 8.1 Debug and Win32. You can change the default configuration to build for Windows 8 or Windows 7 version of the operating system.
+The default Solution build configuration is Debug and Win32.
**To select a configuration and build a driver**
-1. Open the driver project or solution in Visual Studio 2013 (find *filtername*.sln or *filtername*.vcxproj).
+1. Open the driver project or solution in Visual Studio 2015 (find *filtername*.sln or *filtername*.vcxproj).
2. Right-click the solution in the **Solutions Explorer** and select **Configuration Manager**.
-3. From the **Configuration Manager**, select the **Active Solution Configuration** (for example, Windows 8.1 Debug or Windows 8.1 Release) and the **Active Solution Platform** (for example, Win32) that correspond to the type of build you are interested in.
+3. From the **Configuration Manager**, select the **Active Solution Configuration** and the **Active Solution Platform** (for example, Win32) that correspond to the type of build you are interested in.
4. From the **Build** menu, click **Build Solution** (Ctrl+Shift+B).
Overview
diff --git a/usb/usbview/ReadMe.md b/usb/usbview/ReadMe.md
index b017a426..b627f091 100644
--- a/usb/usbview/ReadMe.md
+++ b/usb/usbview/ReadMe.md
@@ -22,14 +22,12 @@ For information about USB, see [Universal Serial Bus (USB) Drivers](http://msdn.
Run the sample
--------------
-Local debugging
----------------
+### Local debugging
1. Change **Debugger** to launch to **Local Windows Debugger**.
2. On the **Debug** menu, select **Start debugging** or hit **F5**.
-Manual deployment to a remote target computer
----------------------------------------------
+### Manual deployment to a remote target computer
If you want to debug the sample app on a remote computer,
@@ -38,8 +36,7 @@ If you want to debug the sample app on a remote computer,
3. Change **Debugger** to launch to **Remote Windows Debugger**.
4. On the **Debug** menu, select **Start debugging** or hit **F5**.
-View a USB device in Usbview
-----------------------------
+### View a USB device in Usbview
1. Attach a USB device to one of USB ports on the computer that has Usbview running.
2. In the device tree, locate the device. For example the device might be under the Intel(R) ICH10 Family USB Universal Host Controller - 3A34 \> Root Hub node.
@@ -48,26 +45,17 @@ View a USB device in Usbview
Code tour
---------
-<table>
-<colgroup>
-<col width="50%" />
-<col width="50%" />
-</colgroup>
-<thead>
-<tr class="header">
-<th align="left">File manifest
-Description</th>
-</tr>
-</thead>
-<tbody>
-<tr class="odd">
-<td align="left">Resource.h
-ID definitions for GUI controls</td>
-<td align="left">Usbdesc.h
-USB descriptor type definitions</td>
-</tr>
-</tbody>
-</table>
+File manifest | Description
+--------------|------------
+Resource.h | ID definitions for GUI controls
+Usbdesc.h | USB descriptor type definitions
+Usbview.h | Main header file for this sample
+Vndrlist.h | List of USB Vendor IDs and vendor names
+Debug.c | Assertion routines for the checked build
+Devnode.c | Routines for accessing DevNode information
+Dispaud.c | Routines for displaying USB audio class device information
+Enum.c | Routines for displaying USB device information
+Usbview.c | Entry point and GUI handling routines
The major topics covered in this tour are: