Device.Connectivity Testing
This section describes how to test the connectivity capabilities of PCI-based or USB-based devices (including USB hubs) and certify them for use on Windows® as part of the Windows Certification Program. This test category also verifies support for the Web Services on Devices API. To begin the testing portion of the certification process, you must install and run the Windows Hardware Certification Kit (Windows HCK) and set up your testing environment. For information about how to install and configure Windows HCK, see Step 1: Install Controller and Studio on the test server.
This section includes the following topics.
Topic | Details |
---|---|
Provides information about prerequisites for testing and about specific setup procedures that you must follow before you test connectivity for your PCI-based device. |
|
Provides information about prerequisites for testing and about specific setup procedures that you must follow before you test proximity features of a device. |
|
Provides information about prerequisites for testing and about specific setup procedures that you must follow before you test connectivity for your USB-based device. |
|
Provides information about prerequisites for testing and about specific setup procedures that you must follow before you test connectivity for your USB hub. |
|
Provides overall Device.Connectivity troubleshooting information. |
|
Includes documentation for every connectivity test in the Windows HCK. |
For test-specific prerequisites or details about troubleshooting, review individual test topics.
Note
To obtain best practices for Windows HCK testing, and to obtain tips for avoiding common failures, see Troubleshooting the Windows HCK Environment.
Testing embedded USB devices
Some of the USB device tests are dependent on the embedded status of the device under test. The test may require a specific USB Host Controller, or physical access to the device that isn’t practical for testing embedded devices. These tests will execute a different code path, or may be skipped entirely for embedded devices.
The Windows HCK will detect if a device is embedded by examining its container ID. If the device container ID matches the system container ID, the device is internally embedded. If the device container ID does not match the system container ID, it is assumed to be an external device. If the device container ID is set properly (visible in Device Manager) there is no need to set the IsEmbeddedUSBDevice parameter. However, if the device-under-test is internally embedded in the system but its container ID is not set properly, the IsEmbeddedUSBDevice parameter will override the automatic detection in the Windows HCK. The test will then execute in embedded mode, but will fail with an error indicating that the system port mapping did not match the user input.
Marking USB devices as embedded devices
The system’s ACPI information must be correct in order to pass the USB tests on embedded devices, even if the user sets the IsEmbeddedUSBDevice parameter. In ACPI, PortIsConnectable must be set correctly in each port’s UPC object in accordance the following document: Using ACPI to Configure USB Ports on a Computer.
It is also recommended that embedded USB hubs (if any) and USB host controller root hubs set the removable bit correctly for each port. For hubs, refer to the Universal Serial Bus Specification, revision 2.0 (USB 2), and Universal Serial Bus 3.0 Specification, revision 1.0 (USB 3). These specifications are available from the USB website.
For host controllers, only the eXtensible Host Controller Interface (xHCI) currently supports reporting which ports are removable.