<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>Microsoft USB Blog articles</title>
    <link>https://techcommunity.microsoft.com/t5/microsoft-usb-blog/bg-p/MicrosoftUSBBlog</link>
    <description>Microsoft USB Blog articles</description>
    <pubDate>Wed, 22 Apr 2026 09:38:20 GMT</pubDate>
    <dc:creator>MicrosoftUSBBlog</dc:creator>
    <dc:date>2026-04-22T09:38:20Z</dc:date>
    <item>
      <title>USB Driver Documentation Updates on UCSI, USB4 Testing</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-usb-blog/usb-driver-documentation-updates-on-ucsi-usb4-testing/ba-p/4497683</link>
      <description>&lt;P data-line="4"&gt;Over the past few months, we've been running a freshness pass across the &lt;A href="https://learn.microsoft.com/en-us/windows-hardware/drivers/usbcon/" target="_blank" rel="noopener" data-href="https://learn.microsoft.com/en-us/windows-hardware/drivers/usbcon/"&gt;USB driver documentation on Microsoft Learn&lt;/A&gt;&amp;nbsp;and the&amp;nbsp;&lt;A href="https://learn.microsoft.com/en-us/windows-hardware/design/component-guidelines/universal-serial-bus-4" target="_blank" rel="noopener" data-href="https://learn.microsoft.com/en-us/windows-hardware/design/component-guidelines/universal-serial-bus-4"&gt;USB4 design guidelines&lt;/A&gt;. The goal is straightforward: make sure the docs match the current Windows 11 driver stack, read clearly, and get you to the answer faster. Here's what changed.&lt;/P&gt;
&lt;H2 data-line="18"&gt;USB4 required testing: new Basic Validation Tests&lt;/H2&gt;
&lt;P data-line="12"&gt;The USB4 ecosystem has grown significantly. As the number of USB4 router implementations grows, so does the need for a clear, repeatable validation baseline. We added a new &lt;A href="https://learn.microsoft.com/en-us/windows-hardware/design/component-guidelines/usb4-required-testing#basic-validation-tests" target="_blank" rel="noopener" data-href="https://learn.microsoft.com/en-us/windows-hardware/design/component-guidelines/usb4-required-testing#basic-validation-tests"&gt;Basic Validation Tests&lt;/A&gt;&amp;nbsp;section to the&amp;nbsp;&lt;A href="https://learn.microsoft.com/en-us/windows-hardware/design/component-guidelines/usb4-required-testing" target="_blank" rel="noopener" data-href="https://learn.microsoft.com/en-us/windows-hardware/design/component-guidelines/usb4-required-testing"&gt;USB4 Required Testing&lt;/A&gt;&amp;nbsp;page.&lt;/P&gt;
&lt;P data-line="14"&gt;The existing page already listed the recommended end-to-end test scenarios: driver verifier, domain power-down, wake replay, interdomain connections, and so on. What was missing was a concise set of smoke tests that OEMs and IHVs could run quickly to catch regressions in incremental USB4 firmware and driver updates without needing a full test pass. The new section fills that gap with nine concrete test scenarios:&lt;/P&gt;
&lt;OL data-line="16"&gt;
&lt;LI data-line="16"&gt;&lt;STRONG&gt;USB4 HLK Tests&lt;/STRONG&gt;: run all&amp;nbsp;System.Fundamentals.SystemUSB.USB4.*&amp;nbsp;and&amp;nbsp;Device.BusController.USB4.*&amp;nbsp;tests.&lt;/LI&gt;
&lt;LI data-line="17"&gt;&lt;STRONG&gt;Basic Enumeration&lt;/STRONG&gt;: attach a USB4 dock and a Thunderbolt 3 dock, each with a display, USB3 storage, and USB2 input. Verify clean enumeration in Device Manager, functional input, file copy, and display extension.&lt;/LI&gt;
&lt;LI data-line="18"&gt;&lt;STRONG&gt;Display&lt;/STRONG&gt;: verify two 4K displays at 60 Hz concurrently, both tunneled through a USB4 dock and directly via DisplayPort Alt Mode.&lt;/LI&gt;
&lt;LI data-line="19"&gt;&lt;STRONG&gt;Camera (Isochronous) Streaming&lt;/STRONG&gt;: stream from a USB3 camera through a USB4 dock for at least one minute with no visible glitches.&lt;/LI&gt;
&lt;LI data-line="20"&gt;&lt;STRONG&gt;System Standby&lt;/STRONG&gt;: attach a full dock topology, cycle standby five times with 30-second to 2-minute waits, and verify all devices survive each transition.&lt;/LI&gt;
&lt;LI data-line="21"&gt;&lt;STRONG&gt;System Reboot&lt;/STRONG&gt;: same topology, same verification, but with a full reboot instead of standby.&lt;/LI&gt;
&lt;LI data-line="22"&gt;&lt;STRONG&gt;System Hibernate&lt;/STRONG&gt;: same again, with hibernate.&lt;/LI&gt;
&lt;LI data-line="23"&gt;&lt;STRONG&gt;Minimal Compatibility and Interoperability&lt;/STRONG&gt;: test at least 3 display models and at least 10 USB4 dock or device models spanning Intel Thunderbolt 4, Intel Thunderbolt 5, Via USB4, Asmedia USB4, Realtek USB4, Intel Thunderbolt 3 Titan Ridge, and Intel Thunderbolt 3 Alpine Ridge.&lt;/LI&gt;
&lt;LI data-line="24"&gt;&lt;STRONG&gt;Basic Plug/Unplug with USB4 Switch&lt;/STRONG&gt;: configure the USB4 Switch with a USB4 dock on port 1 and a Thunderbolt 3 dock on port 2, run&amp;nbsp;ConnExUtil.exe /cxstress&amp;nbsp;for a minimum of 15 minutes (24+ hours for long-term stability), then verify the port still enumerates and charges after the test.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P data-line="26"&gt;Each test includes explicit pass criteria: no yellow bangs, no visual glitches, expected resolution and refresh rates confirmed in the Advanced Display settings. The interoperability test (test 8) is particularly important as USB4 matures: it ensures your platform works across the full range of silicon vendors, not just the one on your bench.&lt;/P&gt;
&lt;P data-line="36"&gt;If you're validating USB4 firmware or driver updates and need a quick confidence check before a broader test pass, this is the list to start with.&lt;/P&gt;
&lt;H2 data-line="6"&gt;UCSI driver docs: cleaned up and refocused on Windows 11&lt;/H2&gt;
&lt;P data-line="8"&gt;The&amp;nbsp;&lt;A href="https://learn.microsoft.com/en-us/windows-hardware/drivers/usbcon/ucsi" target="_blank" rel="noopener" data-href="https://learn.microsoft.com/en-us/windows-hardware/drivers/usbcon/ucsi"&gt;UCSI driver&lt;/A&gt; article got a thorough refresh: updated architecture diagram, clearer UCSI 2.0&amp;nbsp;_DSM&amp;nbsp;backward-compatibility guidance, reformatted UCSIControl.exe test instructions with proper inline code for registry paths, and consistent code-style formatting across the DRP role detection and charger mismatch example flows. We also removed outdated Windows 10 Mobile references so the article now focuses exclusively on Windows 10 desktop and Windows 11.&lt;/P&gt;
&lt;H2 data-line="38"&gt;USB generic parent driver (Usbccgp.sys): plain language rewrite&lt;/H2&gt;
&lt;P data-line="32"&gt;The&amp;nbsp;&lt;A href="https://learn.microsoft.com/en-us/windows-hardware/drivers/usbcon/usb-common-class-generic-parent-driver" target="_blank" rel="noopener" data-href="https://learn.microsoft.com/en-us/windows-hardware/drivers/usbcon/usb-common-class-generic-parent-driver"&gt;Usbccgp.sys&lt;/A&gt;&amp;nbsp;article, the starting point for anyone building composite USB devices, was rewritten for clarity. We simplified jargon-heavy sentences, expanded abbreviations on first use (e.g., "information (INF) file"), updated cross-references to sentence case per the Microsoft Learn style guide, and added customer-intent metadata for better search discoverability.&lt;/P&gt;
&lt;H2 data-line="34"&gt;Community fix: interrupt endpoint direction&lt;/H2&gt;
&lt;P data-line="36"&gt;Here's a small one that matters more than it looks. In the&amp;nbsp;&lt;A href="https://learn.microsoft.com/en-us/windows-hardware/drivers/usbcon/how-to-send-a-usb-interrupt-transfer--uwp-app-" target="_blank" rel="noopener" data-href="https://learn.microsoft.com/en-us/windows-hardware/drivers/usbcon/how-to-send-a-usb-interrupt-transfer--uwp-app-"&gt;How to send a USB interrupt transfer (UWP app)&lt;/A&gt;&amp;nbsp;article, the Interrupt IN transfers section incorrectly stated that HID devices like keyboards "support interrupt&amp;nbsp;&lt;STRONG&gt;OUT&lt;/STRONG&gt;&amp;nbsp;endpoints." Endpoint direction is fundamental (IN means device-to-host, OUT means host-to-device) and getting that wrong in official documentation can send you down entirely the wrong debugging path.&lt;/P&gt;
&lt;P data-line="38"&gt;A community contributor&amp;nbsp;&lt;A href="https://github.com/MicrosoftDocs/windows-driver-docs/pull/4007/changes" target="_blank" rel="noopener" data-href="https://github.com/MicrosoftDocs/windows-driver-docs/pull/4007/changes"&gt;spotted the error and submitted the fix&lt;/A&gt;. It now correctly reads "interrupt&amp;nbsp;&lt;STRONG&gt;IN&lt;/STRONG&gt;&amp;nbsp;endpoints." If you've ever stared at a USB trace wondering why your interrupt transfer wasn't behaving, this might have been part of the confusion.&lt;/P&gt;
&lt;P data-line="40"&gt;Thank you to everyone who submits pull requests. This is exactly the kind of contribution that makes the docs better for all of us.&lt;/P&gt;
&lt;H2 data-line="54"&gt;What's next&lt;/H2&gt;
&lt;P data-line="56"&gt;These updates are part of a broader freshness initiative across the Windows Hardware driver documentation.&amp;nbsp;&lt;/P&gt;
&lt;P data-line="58"&gt;If you spot something that looks outdated or confusing, our documentation is open source. Submit a PR on the&amp;nbsp;&lt;A href="https://github.com/MicrosoftDocs/windows-driver-docs" target="_blank" rel="noopener" data-href="https://github.com/MicrosoftDocs/windows-driver-docs"&gt;windows-driver-docs&lt;/A&gt; GitHub repository. You can also drop a comment below.&lt;/P&gt;</description>
      <pubDate>Fri, 27 Feb 2026 00:17:38 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-usb-blog/usb-driver-documentation-updates-on-ucsi-usb4-testing/ba-p/4497683</guid>
      <dc:creator>Ugan-Sivagnanenthirarajah</dc:creator>
      <dc:date>2026-02-27T00:17:38Z</dc:date>
    </item>
    <item>
      <title>Exploring USB4 in Windows Device Portal</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-usb-blog/exploring-usb4-in-windows-device-portal/ba-p/4473357</link>
      <description>&lt;P&gt;&lt;STRONG&gt;Overview&lt;/STRONG&gt;&lt;BR /&gt;USB4™ brings high-speed connectivity and advanced tunneling capabilities to modern Windows devices. To help developers and IT professionals visualize and manage USB4 topologies, Windows provides the USB4 domain viewer via the &lt;A href="https://learn.microsoft.com/en-us/windows/uwp/debug-test-perf/device-portal" target="_blank" rel="noopener" data-linktype="absolute-path"&gt;Windows device portal&lt;/A&gt;.&lt;/P&gt;
&lt;img&gt;A demo of USB4 Domain Viewer in Windows Device Portal.&lt;/img&gt;
&lt;H4&gt;&lt;STRONG&gt;Key Features of the USB4 Domain Viewer&lt;/STRONG&gt;&lt;/H4&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Topology Visualization&lt;/STRONG&gt;
&lt;UL&gt;
&lt;LI&gt;Displays &lt;STRONG&gt;USB4 host routers&lt;/STRONG&gt; (in green) and &lt;STRONG&gt;device routers&lt;/STRONG&gt; (in blue).&lt;/LI&gt;
&lt;LI&gt;Supports &lt;STRONG&gt;click-and-drag navigation&lt;/STRONG&gt; and &lt;STRONG&gt;zooming&lt;/STRONG&gt; for detailed inspection.&lt;/LI&gt;
&lt;LI&gt;Automatically updates as the topology changes.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Host Router Details&lt;/STRONG&gt;
&lt;UL&gt;
&lt;LI&gt;Each host router includes &lt;STRONG&gt;Name&lt;/STRONG&gt;, &lt;STRONG&gt;VendorId&lt;/STRONG&gt;, and &lt;STRONG&gt;DeviceId&lt;/STRONG&gt;.&lt;/LI&gt;
&lt;LI&gt;Selecting a router reveals additional details in the sidebar.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Device Router Details&lt;/STRONG&gt;
&lt;UL&gt;
&lt;LI&gt;Shows adapters and ports, distinguishing &lt;STRONG&gt;in-use adapters&lt;/STRONG&gt; from unused ones.&lt;/LI&gt;
&lt;LI&gt;Selecting an adapter highlights it with a red circle for quick identification.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Tunnel Visualization&lt;/STRONG&gt;
&lt;UL&gt;
&lt;LI&gt;Tunnels between device routers are illustrated clearly.&lt;/LI&gt;
&lt;LI&gt;Each tunnel uses a &lt;STRONG&gt;colon-separated unique ID&lt;/STRONG&gt; (e.g., 8:1:1:9) for easy reference.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Context-Specific Sidebar&lt;/STRONG&gt;
&lt;UL&gt;
&lt;LI&gt;Updates dynamically based on selected elements (routers, adapters, tunnels).&lt;/LI&gt;
&lt;LI&gt;Allows collapsing or expanding details for streamlined viewing.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;img&gt;A Legend of the different areas of USB4 Domain Viewer&lt;/img&gt;
&lt;H4&gt;&lt;STRONG&gt;Why It Matters&lt;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;The USB4 Domain Viewer simplifies troubleshooting and topology analysis for OEMs, IHVs, and developers. By providing real-time visualization and granular details, it accelerates debugging and ensures compliance with USB4 standards.&lt;/P&gt;
&lt;H4&gt;&lt;STRONG&gt;Getting Started&lt;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;Access the USB4 Domain Viewer through the &lt;STRONG&gt;Windows Device Portal&lt;/STRONG&gt; on supported devices. For more details, visit the official &lt;A href="https://learn.microsoft.com/en-us/windows-hardware/design/component-guidelines/usb4-windows-device-portal" target="_blank" rel="noopener"&gt;Microsoft Learn documentation&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;©&lt;/EM&gt;&lt;EM&gt; 2025 Microsoft. USB4®, USB Type-C® and USB-C®, USB 2.0 Type-C™ are registered trademarks of USB Implementers Forum, Inc. Thunderbolt™ is a trademark of Intel Corporation.&lt;/EM&gt;&amp;nbsp;&lt;EM&gt;This article is not endorsed by or affiliated with USB-IF.&lt;/EM&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 27 Nov 2025 02:25:37 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-usb-blog/exploring-usb4-in-windows-device-portal/ba-p/4473357</guid>
      <dc:creator>Ugan-Sivagnanenthirarajah</dc:creator>
      <dc:date>2025-11-27T02:25:37Z</dc:date>
    </item>
    <item>
      <title>USB Type-C Notifications in Windows: What OEMs Need to Know</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-usb-blog/usb-type-c-notifications-in-windows-what-oems-need-to-know/ba-p/4446175</link>
      <description>&lt;P&gt;Windows 11 includes built-in USB Type-C troubleshooting notifications designed to help users identify and resolve issues like slow charging, unsupported accessories, and faulty connections. These notifications are part of a broader effort to improve device reliability and user experience.&lt;/P&gt;
&lt;P&gt;While our &lt;A href="https://techcommunity.microsoft.com/blog/microsoftusbblog/discover-usb-settings-and-notifications-in-windows-11/4387341" target="_blank" rel="noopener"&gt;previous post&lt;/A&gt; focused on the user experience, this update is for &lt;STRONG&gt;OEMs&lt;/STRONG&gt; highlighting what’s required to ensure these notifications function correctly on your platforms.&lt;/P&gt;
&lt;H2&gt;Why Notifications Might Not Appear&lt;/H2&gt;
&lt;P&gt;USB Type-C notifications rely on accurate platform configuration. If notifications aren’t showing up, it’s often due to:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Missing or incorrect ACPI markup&lt;/STRONG&gt;: Windows uses ACPI descriptors to identify USB Type-C ports and their capabilities. If the port isn’t correctly marked as user-accessible or Type-C, notifications may not trigger.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Incorrect connector type reporting&lt;/STRONG&gt;: Mislabeling a Type-A port as Type-C (or vice versa) can lead to unexpected behavior or missed alerts.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Internal vs. external port confusion&lt;/STRONG&gt;: Ports marked as internal may suppress notifications even if they’re physically accessible to users.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;Validation and Testing&lt;/H2&gt;
&lt;P&gt;To ensure compatibility:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Use the &lt;STRONG&gt;Windows Hardware Lab Kit (HLK)&lt;/STRONG&gt; to validate USB port descriptors.&lt;/LI&gt;
&lt;LI&gt;Confirm that &lt;STRONG&gt;_UPC (USB Port Capabilities)&lt;/STRONG&gt; and &lt;STRONG&gt;_PLD (Physical Location of Device)&lt;/STRONG&gt; ACPI methods are correctly implemented.&lt;/LI&gt;
&lt;LI&gt;Test with various charging scenarios, including underpowered chargers and hubs, to verify that notifications appear as expected. The link below has a table of the notifications and expected behaviours.&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;H2&gt;Security Considerations&lt;/H2&gt;
&lt;P&gt;Some OEMs may choose to disable data over USB Type-C in untrusted environments. If implementing such features:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Ensure the policy applies only to externally accessible ports.&lt;/LI&gt;
&lt;LI&gt;Consider offering user toggles for data disablement.&lt;/LI&gt;
&lt;LI&gt;Validate that disabling data doesn’t interfere with critical internal devices (e.g., touchpad, keyboard).&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;Recommendations for OEMs&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Audit ACPI descriptors and USB Device-Specific Method&lt;/STRONG&gt; for all USB ports. See &lt;A href="https://learn.microsoft.com/en-us/windows-hardware/drivers/bringup/usb-device-specific-method---dsm-#function-7-query-if-_upc-supports-usb-c-port-capabilities-as-defined-in-acpi-specification-65" target="_blank"&gt;https://learn.microsoft.com/en-us/windows-hardware/drivers/bringup/usb-device-specific-method---dsm-#function-7-query-if-_upc-supports-usb-c-port-capabilities-as-defined-in-acpi-specification-65&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Validate notification behavior&lt;/STRONG&gt; across all supported configurations.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Coordinate with &lt;/STRONG&gt;&lt;A href="http://www.aka.ms/whcp" target="_blank" rel="noopener"&gt;&lt;STRONG&gt;Microsoft WHCP&lt;/STRONG&gt;&lt;/A&gt; to ensure new platforms meet testing requirements.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Document exceptions&lt;/STRONG&gt; clearly if certain ports or configurations are unsupported.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;&amp;nbsp;Learn More&lt;/H2&gt;
&lt;P&gt;For technical details and troubleshooting guidance, refer to the official documentation:&lt;BR /&gt;&lt;A href="https://learn.microsoft.com/windows-hardware/drivers/usbcon/usb-type-c-troubleshooting-notifications" target="_blank" rel="noopener"&gt;https://learn.microsoft.com/windows-hardware/drivers/usbcon/usb-type-c-troubleshooting-notifications&lt;/A&gt; &amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 29 Aug 2025 23:00:00 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-usb-blog/usb-type-c-notifications-in-windows-what-oems-need-to-know/ba-p/4446175</guid>
      <dc:creator>Ugan-Sivagnanenthirarajah</dc:creator>
      <dc:date>2025-08-29T23:00:00Z</dc:date>
    </item>
    <item>
      <title>Ending USB-C® Port Confusion</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-usb-blog/ending-usb-c-port-confusion/ba-p/4410479</link>
      <description>&lt;P&gt;&lt;EM&gt;The Blank Display (and Why It Can Still Happen)&amp;nbsp;&lt;/EM&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;Five minutes before a customer demo, I plug my 4K monitor into the USB-C port on a brand-new laptop. The display doesn’t light up, and now I’m scratching my head—the cable fit, so why isn’t it working?&lt;/EM&gt;&amp;nbsp;&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;USB4® carries the promise of a single USB Type-C® port that can do it all – charging, high speed data, multiple displays, and compatibility with Thunderbolt™ peripherals. However, Windows Diagnostics Data shows that 27% of PCs with USB4 have encountered a &lt;A class="lia-internal-link lia-internal-url lia-internal-url-content-type-blog" href="https://techcommunity.microsoft.com/blog/microsoftusbblog/discover-usb-settings-and-notifications-in-windows-11/4387341" target="_blank" rel="noopener" data-lia-auto-title="limited functionality notification" data-lia-auto-title-active="0"&gt;limited functionality notification&lt;/A&gt;, meaning that a customer plugged a USB-C device in, but a feature (alternate mode) that device needs was not implemented on the PC and Windows notified the user. The reversible USB Type-C connector isn’t the problem, the inconsistent implementations of USB-C port capabilities across the PC ecosystem is.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;USB Power Delivery on USB-C ports can deliver up to &lt;STRONG&gt;240&lt;/STRONG&gt;&lt;STRONG&gt; W of power&lt;/STRONG&gt;, and USB4 (which is only available over USB-C) can deliver up to &lt;STRONG&gt;80Gbps&lt;/STRONG&gt; bandwidth (up to &lt;STRONG&gt;120Gbps for Displays&lt;/STRONG&gt;), DisplayPort Alt Mode, DisplayPort and PCIe tunneling, and support for Thunderbolt™ peripherals – all through one connector. But the promise of 'universal' in Universal Serial Bus (USB) only matches user expectations if every port delivers a consistent experience, regardless of laptop manufacturer implementation choices.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So why does the demo fail? Because not all USB-C ports are created equal. You can’t tell which ones deliver the full experience just by looking at them. In this case, if the PC doesn’t support DisplayPort Alternate Mode functionality, that monitor won’t light up even though the cable fits. PC manufacturers can implement ports that look identical but differ wildly in functionality: one may charge your laptop and run a 4K display; another might only deliver USB 2.0 data speeds. The USB specification allows this, and without clear enforcement, the consumer experiences frustration, guesswork, and endless troubleshooting.&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This isn’t new. As USB specification versions have evolved and added new capabilities, the complexity has sometimes left consumers in the dark, especially when ports aren’t labeled clearly. Most people don’t know what “USB 3.2 Gen 2x2” means or which port supports what features. That’s why we’re pleased to see the USB-IF introduce simpler,&amp;nbsp;&lt;A href="https://www.usb.org/logo-license" target="_blank" rel="noopener"&gt;clearer branding guidelines&lt;/A&gt; like “USB 40Gbps” and “USB 80Gbps”, making it much easier for everyone to understand exactly what each port can do.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We think it’s important for this clear branding to carry through to the actual customer experience with USB-C ports on Windows 11 PCs. While the USB specifications give PC manufacturers the ability to choose which optional features the port supports, we set out to establish a minimum bar for USB-C port capabilities on PCs.&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P class="lia-align-center"&gt;Figure 1 Table of the capabilities required by WHCP for mobile Windows systems&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The Windows Hardware Compatibility Program (WHCP) comes in to turn this table into reality – turning optional features into mandatory ones, and ensure a consistent level of performance you can count on. The table above reflects what you can reliably expect from USB-C ports on WHCP-certified mobile PCs.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Some USB 40Gbps and USB 80Gbps ports on Windows 11 PCs are also certified by Intel under the Thunderbolt™ brand, allowing them to be labeled as Thunderbolt™ 4 or Thunderbolt™ 5, respectively. You can rest assured that Thunderbolt™-branded ports meet all the rigorous requirements of both Microsoft’s WHCP program and Intel’s Thunderbolt™ program. Additionally, to qualify to use the Thunderbolt™ brand from Intel, the product must first be certified by the USB-IF.&amp;nbsp;&lt;/P&gt;
&lt;H1&gt;Two Firm Promises of USB-C on Windows 11&amp;nbsp;&lt;/H1&gt;
&lt;P&gt;When we set out to improve the USB-C experience with WHCP, we started by defining the customer promises that we wanted to achieve. This came down to two simple goals:&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;STRONG&gt;USB Data, Charging and Display “just works” on &lt;U&gt;all&lt;/U&gt; USB-C ports: &lt;/STRONG&gt;Your favorite USB 1, USB 2, and USB 3 peripherals, chargers and displays will work exactly as advertised on any USB-C port on your WHCP-certified Windows 11 device.&amp;nbsp;&amp;nbsp;&lt;/LI&gt;
&lt;/OL&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;STRONG&gt;Systems that support USB 40Gbps also give full compatibility with USB4 and Thunderbolt&lt;/STRONG&gt;™&lt;STRONG&gt; 3 peripherals: &lt;/STRONG&gt;On a WHCP-certified USB 40Gbps system, you can also plug in any USB4 or Thunderbolt™ 3 device and trust it will work every time on every port.&amp;nbsp;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;To ensure that certified Windows 11 PCs deliver on these goals, we introduced new and updated WHCP requirements alongside the release of Windows 11, version 24H2, that are laser focused on them.&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;H1&gt;What every USB-C port needs to nail WHCP compliance&amp;nbsp;&lt;/H1&gt;
&lt;H2&gt;All mobile systems with USB-C ports&amp;nbsp;&lt;/H2&gt;
&lt;P&gt;Meeting our first customer promise, that USB Data, Charging and Display “just works” on all USB-C ports, requires any WHCP compliant mobile PC with USB-C to support a baseline set of requirements. No matter what speeds your USB-C ports support, every port can be expected to deliver the following:&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;You can trust that your devices will work flawlessly, avoiding the frustration of unreliable connections, as we require USB-IF &lt;STRONG&gt;certified silicon&lt;/STRONG&gt; in the PC.&lt;STRONG&gt; &lt;/STRONG&gt;This guarantees that every connection is robust and reliable &lt;A href="https://www.usb.org/compliance" target="_blank" rel="noopener"&gt;through USB-IF certification&lt;/A&gt; or equivalent electrical compliance, rigorously tested for compatibility in a lab.&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI&gt;Your devices will charge efficiently and consistently as &lt;STRONG&gt;every USB-C port on a certified PC needs to support USB Power Delivery charging&lt;/STRONG&gt;.&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;DisplayPort Alt-Mode &lt;/STRONG&gt;is required&lt;STRONG&gt; &lt;/STRONG&gt;for all USB-C ports to support connecting monitors.&amp;nbsp; When you plug a display in, you can feel confident it will work well because the ports have to be VESA certified.&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI&gt;The &lt;STRONG&gt;Microsoft driver stack requirement&lt;/STRONG&gt; means PCs are validated using Microsoft’s built-in USB controller drivers. This ensures that security and feature updates arrive via Windows Update, keeping your system secure and up-to-date without any hassle.&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;All Mobile Systems Advertising USB 40Gbps or 80Gbps Support&amp;nbsp;&amp;nbsp;&lt;/H2&gt;
&lt;P&gt;WHCP qualified systems with USB 40Gbps or 80Gbps also deliver the second customer promise, full compatibility with USB4 and Thunderbolt™ 3 peripherals, ensuring top-tier performance and compatibility:&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;This ensures lightning-fast data transfers, making large file transfers and high-speed internet connections a breeze.&amp;nbsp;&lt;STRONG&gt; &lt;/STRONG&gt;Baseline bandwidth means every certified Windows 11 PC advertising USB 40Gbps must sustain full speed 40Gbps links on all USB-C ports.&amp;nbsp;&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI&gt;To enable you to expand your system’s capabilities without any compatibility issues, we require &lt;STRONG&gt;PCI Express tunnelling&lt;/STRONG&gt; that allows external GPUs and NVMe enclosures to work seamlessly because host routers tunnel PCIe on every port.&amp;nbsp;&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI&gt;You can continue using your favorite peripherals without any interruptions as we require &lt;STRONG&gt;Thunderbolt&lt;/STRONG&gt;™&lt;STRONG&gt; compatibility&lt;/STRONG&gt; ensures that existing Thunderbolt™ docks remain plug and play.&amp;nbsp;&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;DisplayPort requirements&lt;/STRONG&gt; ensure support for up to two 4K monitors at 60Hz, providing a stunning visual experience for your work and entertainment.&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI&gt;Finally, &lt;STRONG&gt;sleep and resume resilience&lt;/STRONG&gt; ensures that host routers survive low-power states without dropping tunnels. This means your system remains reliable and connected, even when it’s in sleep mode.&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI&gt;WHCP eliminates the worry of powering devices you plug-in by requiring &lt;STRONG&gt;uniform port power requirements&lt;/STRONG&gt; ensures that each USB 40Gbps port sources at least 15 W (7.5 W on tablets).&amp;nbsp; Note: USB4 ports on the system must support sourcing at 15W from all ports but not all at the same time. Tablet form factor systems are not required to support 15W but must support at least 7.5W. Systems may limit individual port power below 15W when total requested power across multiple ports exceeds the system’s power budget.&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI&gt;WHCP already covers the next spec bump. Any PC that advertises USB 80 Gbps must meet all the above requirements, while also supporting operation in symmetric 80 / 80 Gbps mode and asymmetric 120 / 40 Gbps mode for increased display bandwidth.&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;How we enforce it: The Hardware Lab Kit&amp;nbsp;&lt;/H2&gt;
&lt;P&gt;That “it just works” moment isn’t magic; it’s the result of a tightly choreographed process:&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;STRONG&gt;Translate Pain into Policy&lt;/STRONG&gt;&amp;nbsp;&lt;BR /&gt;We reflect on user feedback, telemetry, and field failures—like the left-port-only monitor issue—and convert each into a discrete WHCP requirement with acceptance criteria.&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Author Automated Tests&lt;/STRONG&gt;&amp;nbsp;&lt;BR /&gt;Our team writes reproducible, automated Windows Hardware Lab Kit (HLK) test cases for every requirement: signaling timing, speed negotiation, power delivery, DisplayPort/PCIe tunnels, sleep/resume resilience, and more.&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Partner-Led Validation&lt;/STRONG&gt;&amp;nbsp;&lt;BR /&gt;OEMs, silicon vendors, and accessory brands run these HLK tests and submit logs to Microsoft. Any failure halts certification until the issue is resolved in hardware or firmware.&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Continuous Evolution&lt;/STRONG&gt;&amp;nbsp;&lt;BR /&gt;WHCP updates with every Windows release. New tests and criteria flow via Windows Update—so fixes and feature enhancements reach end users without new hardware.&amp;nbsp;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;Learn how to &lt;A href="https://learn.microsoft.com/en-us/windows-hardware/test/hlk/user/windows-hardware-lab-kit-user-s-guide" target="_blank" rel="noopener"&gt;run HLK tests&lt;/A&gt; and meet the USB4 requirements at &lt;A href="https://aka.ms/whcp" target="_blank" rel="noopener"&gt;aka.ms/whcp&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1&gt;If You’re an OEM or Accessory Maker&amp;nbsp;&lt;/H1&gt;
&lt;P&gt;Robust USB on Windows requires end-to-end testing—protocol compliance, signal integrity, power negotiation and security—and Microsoft’s USB Test Tool (MUTT) suite of hardware and automated scripts streamlines WHCP certification. Download MUTT and dive into the full device-, silicon-, and system-level requirements (including test collateral) for USB4 on Microsoft Learn:&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;MUTT suite: &lt;A href="https://learn.microsoft.com/windows-hardware/drivers/usbcon/microsoft-usb-test-tool--mutt--devices" target="_blank" rel="noopener"&gt;https://learn.microsoft.com/windows-hardware/drivers/usbcon/microsoft-usb-test-tool--mutt--devices&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI&gt;USB4 requirements: &lt;A href="https://learn.microsoft.com/windows-hardware/design/component-guidelines/usb4-required-testing" target="_blank" rel="noopener"&gt;https://learn.microsoft.com/windows-hardware/design/component-guidelines/usb4-required-testing&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;PC manufacturers are on track to achieve WHCP compliance across most systems in the coming years.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;©&lt;/EM&gt;&lt;EM&gt; 2025 Microsoft. USB Type-C® and USB-C®, USB 2.0 Type-C™ are registered trademarks of USB Implementers Forum, Inc. Thunderbolt™ is a trademark of Intel Corporation.&lt;/EM&gt; &lt;EM&gt;This article is not endorsed by or affiliated with USB-IF.&lt;/EM&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 23 Sep 2025 22:58:46 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-usb-blog/ending-usb-c-port-confusion/ba-p/4410479</guid>
      <dc:creator>Ugan-Sivagnanenthirarajah</dc:creator>
      <dc:date>2025-09-23T22:58:46Z</dc:date>
    </item>
    <item>
      <title>Discover USB Settings and Notifications in Windows 11</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-usb-blog/discover-usb-settings-and-notifications-in-windows-11/ba-p/4387341</link>
      <description>&lt;P&gt;USB 40Gbps (also known as USB4) is the latest USB standard, offering faster data transfer speeds, improved power delivery, and better performance. The second revision, USB 80Gbps, (also known as USB4 V2) doubles the maximum data transfer rate to 80Gbps and supports 120Gbps in certain configurations, ensuring faster file transfers and enhanced video output. The benefits include full backwards compatibility with all USB peripherals, compatibility with Thunderbolt peripherals, and support for multiple DisplayPort streams.&lt;/P&gt;
&lt;P&gt;USB4's tunneling technology efficiently transfers multiple data and display protocols over a single cable, making it ideal for high-performance applications. The USB4 settings page in Windows 11 provides a centralized location for users to view and manage their USB4 hubs and devices, simplifying the user experience and ensuring optimal performance. This blog post introduces the new USB4 settings page and provides an overview of the various USB settings available in Windows 11.&lt;/P&gt;
&lt;H2&gt;How can Windows help me with USB?&lt;/H2&gt;
&lt;P&gt;Windows has features that make using USB devices easy and user-friendly. It handles things like device power management automatically and lets you know if there’s an error. You can tweak these settings in USB Settings. While most users won’t need to change anything, this blog post will help you understand why some of these settings exist. Here are the details.&lt;/P&gt;
&lt;img&gt;The options that show under the Windows 11 USB Settings page&lt;/img&gt;
&lt;H3&gt;Connection Notifications&lt;/H3&gt;
&lt;P&gt;We’ve designed Windows 11 to be your vigilant assistant, notifying you if there’s an issue connecting a USB device. This feature ensures you’re always in the know and can take immediate action. This lets Windows notify you when it detects a problem with a USB connection. You can learn more about the specific notifications that Windows sends, and what you can do in response to them here: &lt;A href="https://support.microsoft.com/windows/fix-usb-c-problems-in-windows-f4e0e529-74f5-cdae-3194-43743f30eed2" target="_blank" rel="noopener"&gt;https://support.microsoft.com/windows/fix-usb-c-problems-in-windows-f4e0e529-74f5-cdae-3194-43743f30eed2&lt;/A&gt;&lt;/P&gt;
&lt;H3&gt;Show a notification if this PC is charging slowly over USB&lt;/H3&gt;
&lt;P&gt;Did you know? Using an incompatible charger can slow down your PC’s charging speed. Always use the charger that supports the required power levels for your PC the fastest charging. This setting lets Windows notify you when your PC’s hardware indicates that it is charging slowly over USB. This could be due to a number of reasons:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;The charger isn’t compatible with your PC.&lt;/LI&gt;
&lt;LI&gt;The charger isn’t powerful enough to charge your PC.&lt;/LI&gt;
&lt;LI&gt;The charger isn’t connected to a charging port on your PC.&lt;/LI&gt;
&lt;LI&gt;The charging cable isn't powerful enough for the charger or PC.&lt;/LI&gt;
&lt;LI&gt;Dust or dirt inside the USB port on your device prevented the charger from being inserted correctly.&lt;/LI&gt;
&lt;LI&gt;The charger is connected through an external hub or dock.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;You can resolve it by using making sure your charger and cable also support the power levels your PC requires for the faster charging. For example, if your PC requires 12V and 3A for the fastest charging, a 5V, 3A charger won’t give you the fastest charging.&lt;/P&gt;
&lt;H3&gt;USB Battery Saver&lt;/H3&gt;
&lt;P&gt;The USB battery saver is a feature designed to help conserve power by stopping USB devices that do not power down by themselves when the system enters standby. Most USB devices are well behaved and tend to power down or suspend when the system enters modern standby. When the feature is enabled, the USB bus will temporarily eject misbehaving devices (i.e. those that do not suspend) for the duration of the standby session. Not doing so would prevent the system from entering a low power standby state and significantly reduce battery life. Hence, this is particularly useful for extending battery life on devices that are battery-powered and support modern standby. When the USB battery saver is on, it prevents unnecessary battery usage from high-power-consuming USB devices by stopping them when the screen is off.&lt;/P&gt;
&lt;P&gt;However, some older USB peripherals may have compatibility issues with low-power states, which is why the option to turn off the USB battery saver exists. Turning it off can have a significant impact on the system's battery life, as it may prevent the system from fully going to standby due to some USB devices still running.&lt;/P&gt;
&lt;H6&gt;&lt;STRONG&gt;&lt;EM&gt;Caution: &amp;nbsp;Microsoft strongly recommends leaving the feature in its default-on enabled state.&lt;/EM&gt;&lt;/STRONG&gt;&lt;/H6&gt;
&lt;H3&gt;USB4 Hubs and devices&lt;/H3&gt;
&lt;P&gt;Imagine plugging in your USB4 device and instantly accessing a world of faster data transfer and improved power delivery. If your PC supports USB4, here’s what you can expect to see in your settings. &lt;S&gt;C&lt;/S&gt; This page is intended to give users insights into their system and device/dock’s USB4 capabilities. It is also meant to support IT administrators and /or customer-support channels when troubleshooting certain problems. (Note: The page is designed to only show USB4 and Thunderbolt 3 devices/hubs attached to your system. If you do not see a device here, it indicates that you do not have a USB4 hub/device attached or that the device operating is not operating in USB4 mode.). Here’s an example of this page:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img&gt;The USB hubs and devices pages provide useful information on your USB4 devices.&lt;/img&gt;
&lt;H2&gt;How do I adjust USB settings?&lt;/H2&gt;
&lt;P&gt;You can manage USB Settings on any Windows 11 device by opening the Settings app, and navigating to Bluetooth &amp;amp; devices &amp;gt; USB.&lt;/P&gt;
&lt;img /&gt;
&lt;H2&gt;How do I know which USB Settings are available?&lt;/H2&gt;
&lt;P&gt;The following settings are available on all PCs:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Connection notifications&lt;/STRONG&gt;: Show a notification if there are issues connecting a USB device&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;USB battery saver:&lt;/STRONG&gt; Stop USB devices when my screen is off to help save battery&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;If your PC supports charging over a USB-C port you will see the following option:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Show a notification if this PC is charging slowly over USB&lt;/STRONG&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;If your PC is a mobile system that supports USB &amp;nbsp; you will see the following Settings available when using USB4 devices on a PC with USB4 ports):&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;USB4 hubs and devices&lt;/STRONG&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;Conclusion&lt;/H2&gt;
&lt;P&gt;At the end of the day, our goal is to make USB technologies in Windows seamless and intuitive. We hope this blog post has given you a glimpse into the thought and care we put into every feature, making your experience as smooth as possible. While we don’t expect most users to have to tinker with their USB Settings, we hope this blog post gave you some useful insights into the motivation behind some of the USB settings.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 28 Feb 2025 23:38:59 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-usb-blog/discover-usb-settings-and-notifications-in-windows-11/ba-p/4387341</guid>
      <dc:creator>Ugan-Sivagnanenthirarajah</dc:creator>
      <dc:date>2025-02-28T23:38:59Z</dc:date>
    </item>
    <item>
      <title>Introducing the USB4™ Switch</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-usb-blog/introducing-the-usb4-switch/ba-p/859656</link>
      <description>&lt;P&gt;As part of the MUTT (Microsoft USB Test Tool) family and a follow-on to the USB Type-C Connection Exerciser, we are excited to introduce the USB4 Switch: a USB Type-C 1:2 programmable switch, compatible with USB4 as well as older protocols such as Thunderbolt™ 3, USB 3.2, USB Type-C Alternate Modes, and of course Power Delivery.&lt;/P&gt;
&lt;P&gt;&lt;img /&gt;&lt;/P&gt;
&lt;P&gt;The USB4 Switch automates connect-disconnect of a USB Type-C port and will be used in stress testing, switching between peripherals (for example, a dock and a display), or any automated reconfiguration of a USB Type-C port.&amp;nbsp; It is compatible with the &lt;A href="https://github.com/microsoft/busiotools/tree/master/usb/tools/ConnectionExerciser" target="_self"&gt;Connection Exerciser&lt;/A&gt; &lt;A href="https://docs.microsoft.com/en-us/windows-hardware/drivers/usbcon/microsoft-usb-test-tool--mutt--devices#usb-type-c-connex" target="_self"&gt;tools and scripts&lt;/A&gt; and integrates with the Hardware Lab Kit (HLK) test content.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It will be a required test device for Windows Certification through the HLK but is highly recommended for use much earlier in your hardware development cycle as well.&amp;nbsp; In our experience, long-run randomized switching on a USB Type-C port is highly effective in exposing bugs in the hardware-firmware-software stack, both in the USB Type-C controller as well as the underlying data protocols.&amp;nbsp; We expect the USB4 Switch to have similar value in the development and validation of USB4 hardware and software.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The device is available to purchase from our partners at MCCI at&amp;nbsp;&lt;A href="https://mcci.com/usb/dev-tools/model-3141/" target="_self"&gt;https://mcci.com/usb/dev-tools/model-3141/&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For UCSI based systems we recommended to perform testing with some additional settings to help discover firmware bugs. Please see “Converting firmware failures to bugchecks” in &lt;A href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2FMicrosoft-USB-Blog%2FDebugging-UCSI-firmware-failures%2Fba-p%2F283226&amp;amp;data=02%7C01%7CPhilip.Froese%40microsoft.com%7C55231dc0e2f6491e53fb08d73b8c4a32%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637043346032414544&amp;amp;sdata=kltqX%2FXflEVkMJKT6XzzW9e%2BzoszxbV2o%2Fgi5%2B0zc2c%3D&amp;amp;reserved=0" target="_blank" rel="noopener"&gt;this blog post&lt;/A&gt;.&lt;/P&gt;</description>
      <pubDate>Fri, 10 Jan 2020 17:44:32 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-usb-blog/introducing-the-usb4-switch/ba-p/859656</guid>
      <dc:creator>Philip Froese</dc:creator>
      <dc:date>2020-01-10T17:44:32Z</dc:date>
    </item>
    <item>
      <title>UCSI based USB Type-C systems may see a shutdown delay if connect changes race with power transition</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-usb-blog/ucsi-based-usb-type-c-systems-may-see-a-shutdown-delay-if/ba-p/718602</link>
      <description>&lt;P&gt;&lt;STRONG&gt;My system takes a long time to power down if a USB Type-C device, dock, or charger is plugged in or unplugged during the power transition.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;A bug in the USB Type-C Connector System Software Interface (UCSI) software implementation in Windows 10, version 1809 can cause a 60 second delay in the system sleep or shutdown process if the power-down happens while the UCSI software is busy handling a new connect or disconnect event on a USB Type-C port. Apart from the extra one minute the sleep or shutdown process takes in this circumstance, this bug does not affect normal functionality of USB Type-C on your machine. The system and the USB Type-C ports should continue to function properly after the next wake or restart of the system.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Edits based on feedback:&lt;/P&gt;
&lt;P&gt;1) This is resolved in Windows 10 version 1903, please update to the latest released build if you are impacted by this bug.&lt;/P&gt;
&lt;P&gt;2) The issue described only affects Windows 10 version 1809 (17763) and is fixed in 1903.&lt;/P&gt;
&lt;P&gt;3) Please use the &lt;A href="https://support.microsoft.com/en-us/help/4021566/windows-10-send-feedback-to-microsoft-with-feedback-hub" target="_self"&gt;Feedback Hub&lt;/A&gt; for further feedback or questions.&lt;/P&gt;</description>
      <pubDate>Tue, 25 Jun 2019 18:42:50 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-usb-blog/ucsi-based-usb-type-c-systems-may-see-a-shutdown-delay-if/ba-p/718602</guid>
      <dc:creator>Philip Froese</dc:creator>
      <dc:date>2019-06-25T18:42:50Z</dc:date>
    </item>
    <item>
      <title>Debugging UCSI firmware failures</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-usb-blog/debugging-ucsi-firmware-failures/ba-p/283226</link>
      <description>&lt;P&gt;&lt;STRONG&gt;Background&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;The UCSI driver in Windows communicates with the firmware UCSI component (called PPM or Platform Policy Manager) through the spec-defined command notification interfaces. While driver failures can be tracked using Windows Error Reporting or WER and driver traces, the firmware may run into failures as well which might go undetected at first but result into loss of functionality later in time. UCSI compliant machines in the wild do run into such failures every day in the tens of thousands.&lt;BR /&gt;This document intends to describe a way in which an OEM or a firmware developer may avoid these PPM failures pro-actively running some stress tests.&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;The most common PPM failure is UCSI command timeout.&lt;/LI&gt;
&lt;LI&gt;UcmUcsiCx.sys is the inbox component in Windows that communicates with PPM. Here is a typical message flow between the driver and the firmware.&lt;/LI&gt;
&lt;LI&gt;UcmUcsiCx.sys driver sends a UCSI command to PPM &lt;BR /&gt;PPM asynchronously sends command complete notification (CCI:: Command Complete Indicator*).&lt;/LI&gt;
&lt;LI&gt;The driver receives the command complete notification and then send Ack to PPM (ACK_CC_CCI)&lt;BR /&gt;PPM asynchronously send ack complete notification (CCI::Acknowledge Command Indicator).&lt;BR /&gt;The driver waits for 10 seconds for an asynchronous notification (steps (2) and (4)) before giving up and generating failure report or a livedump.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;EM&gt;*Note that the above steps are performed for all UCSI commands except PPM_RESET since after PPM_RESET the PPM Is expected to be in reset state where no notifications are enabled. The driver then polls for CCI::Reset Complete Indicator to be true.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Converting firmware failures to bugchecks&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;One way in which an OEM or a firmware developer can catch these failures in the lab or development environment is the configure the machine to bugcheck generating a kernel crashdump rather than&amp;nbsp; livedump which may go undetected. In addition to repro the failure, we advise an OEM/firmware developer to use &lt;A title="Connection Exerciser" href="https://mcci.com/usb/dev-tools/3101-type-c-connection-exerciser/" target="_self"&gt;Connection Exerciser&lt;/A&gt;&amp;nbsp;Stress test:&amp;nbsp;&lt;A title="CxStress" href="https://docs.microsoft.com/en-us/windows-hardware/drivers/usbcon/test-usb-type-c-systems-with-mutt-connex-c#cxstress" target="_self"&gt;CxStress&lt;/A&gt;. CxStress is a part of MUTT software pachage found in &lt;A title="MUTT Software Package" href="https://docs.microsoft.com/en-us/windows-hardware/drivers/usbcon/mutt-software-package" target="_self"&gt;this&lt;/A&gt; location.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Setup Connection exerciser: An example connection is shown in the following picture where the Type-C connector of the SUT is connected to the connection exerciser. The 4 Type-C ports of the connection exerciser is connected to 4 different kinds of the partners. For example,&amp;nbsp;one or more alt-mode docks (if applicable), one or more PD chargers, a Type-C MUTT or other USB-C devices like a USB-C mass storage device. Refer to the picture below for an example setup.&lt;img /&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI&gt;Configure UcmUcsiCx.sys to elevate livedump to crashdump
&lt;UL&gt;
&lt;LI&gt;Locate the device node in Device Manager (devmgmt.msc) named&amp;nbsp;UCM-UCSI ACPI Device. The node is under the&amp;nbsp;USB Connector Manager&lt;/LI&gt;
&lt;LI&gt;Right-click on the device, and select&amp;nbsp;Properties&amp;nbsp;and open the&amp;nbsp;Details&lt;/LI&gt;
&lt;LI&gt;Select&amp;nbsp;Device Instance Path from the drop-down and note the property value.&lt;/LI&gt;
&lt;LI&gt;On an elevated command prompt
&lt;UL&gt;
&lt;LI&gt;reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\&amp;lt;&lt;EM&gt;device-instance-path&lt;/EM&gt;&amp;gt;\Device Parameters" /v ForceCommandFailureCrash /t REG_DWORD /d 0x01&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;Restart the device by selecting the&amp;nbsp;Disable option on the device node in Device Manager, and then selecting&amp;nbsp;Enable. Alternatively, you can simply restart the PC.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;Run CxStess.cmd (typically found in “C:\Program Files (x86)\USBTest\x64”). For completeness, we recommend you to run this test overnight (~8 hours).&lt;/LI&gt;
&lt;LI&gt;Keep an eye on bugchecks that might happen due to the above test. The next section talks about how to go about finding their root cause.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Analyzing Firmware Failures&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;This section goes through analysis of an example crash that occurred when UcmUcsiCx driver was configured to generate a crashdump instead of a livedump. Load the dump file in &lt;A title="Windbg" href="https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/debugger-download-tools" target="_self"&gt;Windbg&lt;/A&gt; using &amp;lt;&lt;EM&gt;dir_path_to_windbg&lt;/EM&gt;&amp;gt;\windbg.exe -z &amp;lt;&lt;EM&gt;path_to_memory_dump&lt;/EM&gt;&amp;gt; from command line or run window. Refer &lt;A title="kernel mode dump files" href="https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/kernel-mode-dump-files" target="_self"&gt;analyzing kernel mode dumps&lt;/A&gt; for more details.&lt;/P&gt;
&lt;P&gt;Run !analyze to check the failure type. Bugcheck code: 0x1D4 is the UCSI failure code.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;1: kd&amp;gt; !analyze -v

UCMUCSI_FAILURE (1d4)
The UcmUcsi driver has encountered an error.
Arguments:
Arg1: 0000000000000000, A UCSI command has timed out because the firmware did not respond to the command in time.
Arg2: 0000000000000005, The UCSI command value.
Arg3: ffff988646b2f8d0, If non-zero, the pointer to additional information (dt UcmUcsiCx!UCMUCSICX_TRIAGE).
Arg4: 0000000000000000

Debugging Details:
..
&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Get UcmUcsiCx driver traces. The following text contains the last few lines of the trace which we are interested in. To dump the driver traces, we rely on a windbg command called 'rcdrlogdump' found in 'rcdrkd'. The last few entries in the traces are related to the driver trying to stop the state machine and generating a dump. Look for the state machine event called &lt;STRONG&gt;CommandTimeOut&lt;/STRONG&gt; and retrace the state machine transitions back a few steps to find out which command has timed out. In this specific example, it happens to be &lt;STRONG&gt;SetNotificationEnable&lt;/STRONG&gt; UCSI command. Refer line 1076, 1083 and 1085 in the following WPP trace dump from Windbg.&lt;/P&gt;
&lt;PRE&gt;1: kd&amp;gt; !rcdrkd.rcdrlogdump ucmucsicx
Trace searchpath is: 

Trace format prefix is: %7!u!: %!FUNC! - 
Trying to extract TMF information from - C:\ProgramData\Dbg\sym\UcmUcsiCx.pdb\DA9957412F663B283F7EF8BE9406D0551\UcmUcsiCx.pdb
--- start of log ---
…
…
…
1073: UcmUcsiCx::CommandHandler::EvtLogTransition - [COMMAND HANDLER] SmFx transition [Transition: External][Source: WaitingForCommand][Event : CommandAvailable][Target: ProcessNextCommand]
1074: UcmUcsiCx::CommandHandler::EvtLogTransition - [COMMAND HANDLER] SmFx transition [Transition: Call][Source: ProcessNextCommand][Event : _noevent_][Target: RetreiveCommandType]
1075: UcmUcsiCx::CommandHandler::EvtLogTransition - [COMMAND HANDLER] SmFx transition [Transition: External][Source: RetreiveCommandType][Event : AsyncCommand][Target: SendNewCommandToPPM]
1076: UcmUcsiCx::CommandHandler::SendUCSICommandToPpm - [UCMUCSIPPM: 0x0000507062114698] Sending Command &lt;STRONG&gt;UcsiCommandSetNotificationEnable&lt;/STRONG&gt; to client


1077: UcmUcsiCx::CommandHandler::EvtLogEventEnqueue - [COMMAND HANDLER] SmFx event: RequestCompletedSuccessfully
1078: UcmUcsiCx::CommandHandler::EvtLogTransition - [COMMAND HANDLER] SmFx transition [Transition: Call][Source: SendNewCommandToPPM][Event : _noevent_][Target: WaitingForRequestCompletion]
1079: UcmUcsiCx::CommandHandler::EvtLogTransition - [COMMAND HANDLER] SmFx transition [Transition: ExplicitPop][Source: WaitingForRequestCompletion][Event : RequestCompletedSuccessfully][Target: SendNewCommandToPPM]
1080: UcmUcsiCx::CommandHandler::EvtLogTransition - [COMMAND HANDLER] SmFx transition [Transition: External][Source: SendNewCommandToPPM][Event : Succeeded][Target: StartingCommandCompleteTimer]
1081: UcmUcsiCx::CommandHandler::EvtLogTransition - [COMMAND HANDLER] SmFx transition [Transition: External][Source: StartingCommandCompleteTimer][Event : Done][Target: WaitingForCommandComplete]
1082: UcmUcsiCx::Opm::EvtLogTransition - [OPM] SmFx transition [Transition: Call][Source: EnableCmdCompleteNotificationOnPowerUp][Event : _noevent_][Target: WaitingForCommandCompletion]
&lt;STRONG&gt;1083: UcmUcsiCx::CommandHandler::PrettyPrintCCI - [CCI] ConnChange:0x0 | DataLength:0x0 | NotSupported:0 | CancelCompleted:0 | ResetCompleted:1 | Busy:0 | AckCommand:0 | Error:0 | CommandComplete:0 |&lt;/STRONG&gt;
1084: UcmUcsiCx::CxDevice::EvtDeviceWdmPreprocessSetPowerIrp - [WDFDEVICE: 0x000050706D0133C8] System Power Down to SYSTEM_POWER_STATE:0x5
1085: UcmUcsiCx::CommandHandler::EvtLogEventEnqueue - [COMMAND HANDLER] SmFx event: &lt;STRONG&gt;CommandTimedOut&lt;/STRONG&gt;
1086: UcmUcsiCx::CommandHandler::EvtLogTransition - [COMMAND HANDLER] SmFx transition [Transition: ExplicitPop][Source: WaitingForCommandComplete][Event : CommandTimedOut][Target: ProcessNextCommand]
1087: UcmUcsiCx::CommandHandler::EvtLogTransition - [COMMAND HANDLER] SmFx transition [Transition: ImplicitPop][Source: ProcessNextCommand][Event : UnrecoverableFailure][Target: Started]
1088: UcmUcsiCx::CommandHandler::EvtLogTransition - [COMMAND HANDLER] SmFx transition [Transition: External][Source: Started][Event : UnrecoverableFailure][Target: Failed]
1089: UcmUcsiCx::Opm::EvtCommandCompletionReceived - [UCMUCSIPPM: 0x0000507062114698] Response timed out for command UcsiCommandSetNotificationEnable, 0x00000102(STATUS_TIMEOUT)
1090: UcmUcsiCx::Opm::EvtLogEventEnqueue - [OPM] SmFx event: Stop
1091: UcmUcsiCx::Opm::EvtLogTransition - [OPM] SmFx transition [Transition: External][Source: WaitingForCommandCompletion][Event : Stop][Target: WaitingForCommandCompletionAfterStop]
1092: UcmUcsiCx::Opm::EvtLogEventEnqueue - [OPM] SmFx event: CommandComplete
1093: UcmUcsiCx::Opm::EvtLogTransition - [OPM] SmFx transition [Transition: ExplicitPop][Source: WaitingForCommandCompletionAfterStop][Event : CommandComplete][Target: EnableCmdCompleteNotificationOnPowerUp]
1094: UcmUcsiCx::Opm::EvtLogTransition - [OPM] SmFx transition [Transition: ImplicitPop][Source: EnableCmdCompleteNotificationOnPowerUp][Event : Stop][Target: PowerDownAndWaitForPowerUp]
1095: UcmUcsiCx::Opm::EvtLogTransition - [OPM] SmFx transition [Transition: ImplicitPop][Source: PowerDownAndWaitForPowerUp][Event : Stop][Target: PpmOperational]
1096: UcmUcsiCx::Opm::EvtLogTransition - [OPM] SmFx transition [Transition: ExplicitPop][Source: PpmOperational][Event : Stop][Target: Started]
1097: UcmUcsiCx::Opm::EvtLogTransition - [OPM] SmFx transition [Transition: External][Source: Started][Event : Stop][Target: PurgingUnserviceCommandsDueToStop]
1098: UcmUcsiCx::Opm::EvtLogTransition - [OPM] SmFx transition [Transition: External][Source: PurgingUnserviceCommandsDueToStop][Event : Done][Target: StopCommandHandlerMachine]
1099: UcmUcsiCx::CommandHandler::EvtLogEventEnqueue - [COMMAND HANDLER] SmFx event: Stop
1100: UcmUcsiCx::CxDevice::UnrecoverableFailureEncountered - [WDFDEVICE: 0x000050706D0133C8] An unrecoverable failure has been encountered. The device will now restart.
---- end of log ----
&lt;/PRE&gt;
&lt;P&gt;To summarize the above failure, UcmUcsiCx driver sends SetNoficationEnable command to the firmware and the firmware fails to send command complete notification within the timeout period of 10 seconds. Instead it sends a Reset Complete notification.&lt;/P&gt;
&lt;P&gt;When such a failure occurs, we advise an OEM with work with firmware developer to fix the problem.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 07 Nov 2018 21:59:23 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-usb-blog/debugging-ucsi-firmware-failures/ba-p/283226</guid>
      <dc:creator>Rajib Dutta</dc:creator>
      <dc:date>2018-11-07T21:59:23Z</dc:date>
    </item>
    <item>
      <title>Introducing USB Type-C Connector System Software Interface (UCSI) Class Extension</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-usb-blog/introducing-usb-type-c-connector-system-software-interface-ucsi/ba-p/283208</link>
      <description>&lt;P&gt;USB Type-C Connector System Software Interface (&lt;A title="Intel UCSI Spec" href="https://www.intel.com/content/dam/www/public/us/en/documents/technical-specifications/usb-type-c-ucsi-spec.pdf" target="_self"&gt;UCSI&lt;/A&gt;) defines the commands and notifications to manage a platform that exposes one or more USB Type-C connectors. The combination of hardware and firmware and any vendor-provided OS software that provides this interface is referred to as the Platform Policy Manager or the PPM. UCSI PPM is typically implemented by an Embedded Controller (EC) which may either implement Power Delivery (PD) state machines or interface a PD controller. An OEM may interface with EC over the physical transport of their choice. Historically, this transport has been ACPI but we have recently seen an upsurge of PCI, UART, I2C, USB being adopted as means to connect an EC in the system.&lt;/P&gt;
&lt;P&gt;Windows has for several releases had inbox support for UCSI over ACPI using UcmUcsi.sys. This was a client driver to USB Connector Manager Class Extension or &lt;A title="UCM Programming Reference" href="https://msdn.microsoft.com/en-us/library/windows/hardware/mt188011(v=vs.85).aspx" target="_self"&gt;UcmCx&lt;/A&gt;. However, starting with the RS5 release (or Windows 10 October 2018 update), Windows includes UCSI Class Extension (UCSI Cx, binary name: UcmUcsiCx.sys) which is a transport agnostic implementation of UCSI logic. This update also includes inbox ACPI client (binary name: UcmUcsiAcpiClient.sys) support for this class extension.&amp;nbsp;&lt;img /&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;UCSI&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;Cx&lt;/SPAN&gt; implements the OPM (OS Policy Manager) state machines that decide which UCSI command to be sent to the PPM and when. The client to this class extension is expected to be thin and has the following responsibilities:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Initialize connectors with UCSI Cx.&lt;/LI&gt;
&lt;LI&gt;Notify UCSI Cx of start and stop of the PPM using DDIs.&lt;/LI&gt;
&lt;LI&gt;Receive a UCSI data block from the Cx using IOCTLs and send it to the EC over the transport that it supports.&lt;/LI&gt;
&lt;LI&gt;Relay a UCSI notification from EC to the Cx.&lt;/LI&gt;
&lt;LI&gt;Become the power policy owner for the driver.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;If you are bringing up support for a system that has UCSI EC connected over a non-ACPI transport, we would recommend you develop your transport specific USCI Cx client driver. &lt;A title="UCSI document" href="https://docs.microsoft.com/en-us/windows-hardware/drivers/usbcon/ucsi" target="_self"&gt;This document&lt;/A&gt; is a good place to start.&lt;/P&gt;</description>
      <pubDate>Wed, 07 Nov 2018 21:31:58 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-usb-blog/introducing-usb-type-c-connector-system-software-interface-ucsi/ba-p/283208</guid>
      <dc:creator>Rajib Dutta</dc:creator>
      <dc:date>2018-11-07T21:31:58Z</dc:date>
    </item>
    <item>
      <title>Bringing Device Support to Windows Containers</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-usb-blog/bringing-device-support-to-windows-containers/ba-p/270913</link>
      <description>&lt;HTML&gt;
 &lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;
  &lt;STRONG&gt;
   First published on MSDN on Sep 05, 2018
  &lt;/STRONG&gt;
  &lt;BR /&gt;
  We’ve been working with several different feature teams within Microsoft to enable access to various hardware devices from inside Windows Containers running on Windows IoT. The link below provides more details about this effort and would be the right place to provide feedback on the progress made so far, and suggestions for additional functionality you may need.
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;A href="https://blogs.technet.microsoft.com/virtualization/2018/08/13/bringing-device-support-to-windows-server-containers/" target="_blank"&gt;https://blogs.technet.microsoft.com/virtualization/2018/08/13/bringing-device-support-to-windows-server-containers/&lt;/A&gt;
 
&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 12 Oct 2018 22:57:23 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-usb-blog/bringing-device-support-to-windows-containers/ba-p/270913</guid>
      <dc:creator>Shyamal Varma</dc:creator>
      <dc:date>2018-10-12T22:57:23Z</dc:date>
    </item>
    <item>
      <title>Running USB Type-C System HLK tests with the Type-C MUTT</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-usb-blog/running-usb-type-c-system-hlk-tests-with-the-type-c-mutt/ba-p/270912</link>
      <description>&lt;P&gt;&lt;STRONG&gt; First published on MSDN on Jun 05, 2018 &lt;/STRONG&gt; &lt;BR /&gt;Authored by Philip Froese [MSFT] &lt;BR /&gt;&lt;BR /&gt;[Last updated May 2, 2024] &lt;BR /&gt;&lt;BR /&gt;In the next release of the HLK, the UCSI tests have been updated to run against the new Type-C SuperMUTT device instead of a partner system. This means the test setup will be simpler, the tests will run more quickly, and test content will be more thorough than in Windows 10 April 2018 Update HLK and earlier.&amp;nbsp;The new preview tests are only in pre-release HLK builds 17676 and higher.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;New Test Setup&lt;/H3&gt;
&lt;P&gt;&lt;BR /&gt;The new test setup is simple: it requires a single Windows PC with Type-C, designated the System Under Test (SUT), and the Type-C SuperMUTT connected to one of the Type-C connectors on the system. See the image below. &lt;BR /&gt;&lt;BR /&gt;&lt;img /&gt;&lt;/P&gt;
&lt;H3&gt;&amp;nbsp;&lt;/H3&gt;
&lt;H3&gt;Type-C SuperMUTT&lt;/H3&gt;
&lt;P&gt;&lt;BR /&gt;The Type-C SuperMUTT is the newest edition to the Microsoft USB Test Tool (MUTT) family of devices. It incorporates the functionality of the legacy SuperMUTT device as well as Type-C and PD functionality. &lt;BR /&gt;&lt;BR /&gt;The software and firmware utilities are available in the MUTT Package download: &lt;A href="https://docs.microsoft.com/en-us/windows-hardware/drivers/usbcon/mutt-software-package" target="_blank" rel="noopener"&gt; https://docs.microsoft.com/en-us/windows-hardware/drivers/usbcon/mutt-software-package &lt;/A&gt; &lt;BR /&gt;&lt;BR /&gt;And the tool is available for purchase through MCCI: &lt;A href="http://www.mcci.com/mcci-v5/devtools/type-c-supermutt.html" target="_blank" rel="noopener"&gt; http://www.mcci.com/mcci-v5/devtools/type-c-supermutt.html &lt;/A&gt; &lt;BR /&gt;&lt;BR /&gt;Firmware version 45 or later, available in MUTT Package v2.6 and later, is required to run the UCSI HLK tests in the&amp;nbsp;next release of the HLK.&amp;nbsp; See the &lt;STRONG&gt; TypeCSuperMUTT.pdf &lt;/STRONG&gt; documentation in the MUTT Package download for more information.&lt;/P&gt;
&lt;H3&gt;&amp;nbsp;&lt;/H3&gt;
&lt;H3&gt;New Test Names&lt;/H3&gt;
&lt;P&gt;&lt;BR /&gt;The UCSI compliance tests have been replaced with a new version of the tests to run against the Type-C SuperMUTT. The new version of the test has the tag “[Type-C MUTT]” added to the test name.&lt;/P&gt;
&lt;H3&gt;&amp;nbsp;&lt;/H3&gt;
&lt;H3&gt;What is Different?&lt;/H3&gt;
&lt;P&gt;&lt;BR /&gt;Beyond a new name and a simpler test setup, what else is new in the tests? For the most part, the tests cover the same features in the same manner as the original tests did. However, there are some cases where the new tests will be more rigorous. &lt;BR /&gt;&lt;BR /&gt;Take USB Operation Role tests for example. Many desktop UCSI systems do not support being set into the UFP role, though they may resolve to that role initially when connected to a pure DFP (such as a charger). This behavior makes it difficult to test every permutation of DFP/UFP/DRP connections that a platform may have to support if it is tested against a functionally equivalent peer device. However, with the Type-C SuperMUTT the test can deterministically place the Type-C SuperMUTT into a specific, known port direction or configuration before connecting it to the SUT and is thus able to provide more complete test coverage of USB Operation Role features. &lt;BR /&gt;&lt;BR /&gt;Thus, there may be some test cases in next release of the HLK that are more thorough and thus uncover new platform quirks that Windows 10 April 2018 Update HLK and earlier test content did not. &lt;BR /&gt;&lt;BR /&gt;You will also notice that some tests have been removed. Some tests were determined to be redundant when run against the Type-C SuperMUTT and so were removed. Others targeted UCSI commands that have been removed in UCSI v1.1, and which Windows never supported, so were removed as obsolete.&lt;/P&gt;
&lt;H2&gt;&amp;nbsp;&lt;/H2&gt;
&lt;H2&gt;USB Type-C UCSI Data and Power Role Swap Tests&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;Applicable Tests&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;USB Type-C UCSI Data Role Swap&lt;/LI&gt;
&lt;LI&gt;USB Type-C UCSI Power Role Swap&lt;/LI&gt;
&lt;LI&gt;&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;Hardware Requirements&lt;BR /&gt;&lt;BR /&gt;&lt;/H3&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;One UCSI compliant Windows system.&lt;/LI&gt;
&lt;LI&gt;One Type-C MUTT device.&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;Test Setup&lt;BR /&gt;&lt;BR /&gt;&lt;/H3&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Install HLK client on the System Under Test (SUT).&lt;/LI&gt;
&lt;LI&gt;Connect the Type-C MUTT to any USB Type-C port on the SUT.&lt;/LI&gt;
&lt;LI&gt;Locate the device node in Device Manager (devmgmt.msc) named "UCM-UCSI ACPI Device". The node is under the "USB Connector Managers" category.&lt;/LI&gt;
&lt;LI&gt;Right-click on the device, and select "Properties" and open the "Details" tab.&lt;/LI&gt;
&lt;LI&gt;Select "Device Instance Path" from the drop-down and note the property value.&lt;/LI&gt;
&lt;LI&gt;Open Registry Editor (regedit.exe).&lt;/LI&gt;
&lt;LI&gt;Navigate to the device instance path under this key: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Enum\&amp;lt;device-instance-path from step 6&amp;gt;\Device Parameters&lt;/LI&gt;
&lt;LI&gt;Create a DWORD value named "TestInterfaceEnabled" and set the value to 0x1.&lt;/LI&gt;
&lt;LI&gt;Restart the device by selecting the "Disable" option on the device node in Device Manager, and then selecting "Enable". Alternatively, you can simply restart the PC.&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;H3&gt;Test Parameters&lt;/H3&gt;
&lt;P&gt;&lt;BR /&gt;Parameter NameParameter Description&lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;SwapsToPerform&lt;/TD&gt;
&lt;TD&gt;Number of data role swaps to perform. The minimum is 2 so that both host and function mode are tested.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;ValidateUsbFn&lt;/TD&gt;
&lt;TD&gt;If ValidateUsbFn = true, the test will validate function stack behavior.&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;Troubleshooting&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;Some UCSI commands are marked "optional" in the UCSI specification. However, Microsoft requires some optional commands to be implemented in order for the UCSI driver to function. The tests may fail if you've forgotten to implement one of these commands in your BIOS. You can find that list of commands &lt;A href="https://docs.microsoft.com/en-us/windows-hardware/drivers/usbcon/ucsi" target="_blank" rel="noopener"&gt; here &lt;/A&gt; .&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI style="list-style-type: none;"&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;If the test is not detecting the Type-C MUTT:&amp;nbsp;&lt;/SPAN&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;Check your cable connection to the Type-C MUTT.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Check in Device Manager. Has the Type-C MUTT enumerated?&lt;/SPAN&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Look for the "SuperMUTT" device with hardware ID USB\VID_045E&amp;amp;PID_078F in the Device Manager.&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;Does the "Device Status" of the UCSI device report any errors? If so: &lt;/SPAN&gt;
&lt;UL&gt;
&lt;LI&gt;Right-click on the UCSI device and disable it.Check in Device Manager. Does the "Device Status" of the UCSI device report any errors? If so:&lt;/LI&gt;
&lt;LI&gt;Start UCSI logging (see &lt;A href="https://aka.ms/usbtrace" target="_blank" rel="noopener"&gt; https://aka.ms/usbtrace &lt;/A&gt; )&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Enable the UCSI device. Do whatever it takes to get the yellow bang to reproduce.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;Stop logging.&lt;/LI&gt;
&lt;LI&gt;View the resulting WPP logs and check for errors.&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;H2&gt;USB Type-C UCM Data and Power Role Swap Tests&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;Applicable Tests&lt;BR /&gt;&lt;BR /&gt;&lt;/H3&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;USB Type-C UCM Data Role Swap&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;USB Type-C UCM Power Role Swap&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;Hardware Requirements&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;One Windows system with a USB Type-C connector.&lt;/LI&gt;
&lt;LI&gt;One Type-C MUTT device.&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;Test Setup&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Install the HLK client on the System Under Test (SUT).&lt;/LI&gt;
&lt;LI&gt;Connect the Type-C MUTT to any USB Type-C port on the SUT.&lt;/LI&gt;
&lt;LI&gt;Ensure all other USB Type-C ports are disconnected.&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;H3&gt;Test Parameters&lt;/H3&gt;
&lt;P&gt;&lt;BR /&gt;Parameter NameParameter Description&lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;SwapsToPerform&lt;/TD&gt;
&lt;TD&gt;Number of data role swaps to perform. The minimum is 2 so that both host and function mode are tested.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;ValidateUsbFn&lt;/TD&gt;
&lt;TD&gt;If ValidateUsbFn = true, the test will validate function stack behavior.&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;Troubleshooting&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;"No USB Type-C Connectors found with partners attached".&amp;nbsp;&lt;/SPAN&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;Check your cable connection to the Type-C MUTT.&lt;/SPAN&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Check in Device Manager. Has the Type-C MUTT enumerated?
&lt;UL&gt;
&lt;LI&gt;Look for the "SuperMUTT" device with hardware ID&amp;nbsp;USB\VID_045E&amp;amp;PID_078F in the Device Manager.&lt;/LI&gt;
&lt;LI&gt;If your system is using UCSI, you can take UCSI logs during attach to investigate why the attach has not been reported to the OS.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;UCSI Compliance tests&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;Applicable tests&lt;/H3&gt;
&lt;P&gt;&lt;BR /&gt;This category of tests refers to all tests in the HLK with a name that begins with "UCSI" and is post-fixed with “[Type-C MUTT]”. The early pre-release HLK builds will include the original UCSI Compliance Tests as well, these tests have the same names, but without the “[Type-C MUTT]” suffix. Unless you are specifically running the old test for comparison, you should ignore the old versions of the tests. &lt;BR /&gt;&lt;BR /&gt;UCSI Compliance Tests are meant to test the UCSI-capable Type-C system’s compliance to UCSI Specification. &lt;BR /&gt;&lt;BR /&gt;Broad Categories of UCSI Compliance Tests &lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;UCSI Command Interface tests.
&lt;UL&gt;
&lt;LI&gt;Tests all of the UCSI commands that are claimed to be supported by the SUT.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;USB Operation Mode tests.
&lt;UL&gt;
&lt;LI&gt;Tests all of the USB Operation Modes that are claimed to be supported by the SUT on the given Connector.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;USB Operation Role tests.
&lt;UL&gt;
&lt;LI&gt;Tests all of the USB Operation Roles and role swaps that are claimed to be supported by the SUT on the given Connector.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;Power Direction Role Tests.
&lt;UL&gt;
&lt;LI&gt;Tests all of the Power Direction Roles that are claimed to be supported by the SUT on the given Connector. Performs role swaps.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;UCSI Notification tests.
&lt;UL&gt;
&lt;LI&gt;Tests all of the UCSI notifications that are claimed to be supported by the System under Test on the given Connector.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;H3&gt;Hardware Requirements&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;One UCSI compliant Windows system.&lt;/LI&gt;
&lt;LI&gt;One USB Type-C MUTT device.&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;How to identify Connector 1&lt;/H3&gt;
&lt;P&gt;&lt;BR /&gt;In the next release of the HLK, the tests can be run against any available connector on the SUT, but you will need to specify the connector that the Type-C MUTT is connected to via the UcsiConnectorNumber parameter. If you do not know the connector numbers on a multi-port system, the UCSI Connector One Identification [Type-C MUTT] test can help you identify which is connector 1. If the SUT has 3 or more connectors, and you don’t know their mapping, you will simply need to experiment by connecting the Type-C MUTT to an unknown port, setting UcsiConnectorNumber to a new value, and running a test to see if the device is found on that connector; repeat with a new connector number until successful. This should just take a few attempts to establish the connector number layout for any new system.&lt;/P&gt;
&lt;H3&gt;Test Setup&lt;/H3&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Install the HLK client on the System Under Test (SUT).&lt;/LI&gt;
&lt;LI&gt;Connect the Type-C MUTT to any USB Type-C port on the SUT.&lt;/LI&gt;
&lt;LI&gt;Record the connector number to which the Type-C MUTT is attached. You will supply this number when scheduling the tests.&lt;/LI&gt;
&lt;LI&gt;Install TestUcsi.sys driver on the SUT. On systems with USB dule-role controllers such as some ARM64 systems, it is important that the Type-C MUTT is connected before the test driver is installed, otherwise the USB host stack may not get loaded.
&lt;OL&gt;
&lt;LI&gt;In Device Manager, find the device "UCM-UCSI ACPI Device". This device will have the driver UcmUcsiAcpiClient.sys installed.&lt;/LI&gt;
&lt;LI&gt;Right-click the device and select "Update Driver Software"
&lt;OL&gt;
&lt;LI&gt;Enter the path to TestUcsi.inf
&lt;OL&gt;
&lt;LI&gt;TestUcsi.inf and TestUcsi.sys are located in \TestUcsi\&amp;lt;ARCHITECTURE&amp;gt;\&lt;/LI&gt;
&lt;/OL&gt;
&lt;/LI&gt;
&lt;LI&gt;Follow the prompts to complete the driver installation. This will replace UcmUcsiAcpiClient.sys with TestUcsi.sys.Right-click the device and select "Update Driver Software"&amp;nbsp;&lt;/LI&gt;
&lt;/OL&gt;
&lt;/LI&gt;
&lt;/OL&gt;
&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;Test Parameters&lt;/H3&gt;
&lt;P&gt;&lt;BR /&gt;Parameter NameParameter Description&lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;UcsiConnectorNumber&lt;/TD&gt;
&lt;TD&gt;The Type-C connector number on which the Type-C MUTT device is attached.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;WaitTimeInMinutes&lt;/TD&gt;
&lt;TD&gt;For tests that require manual intervention, this is the amount of time in minutes the test will wait to see the event that is expected to occur in response to the requested manual action.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;WaitTimeMultiplier&lt;/TD&gt;
&lt;TD&gt;An integral multiplier of wait times required in the test when interacting with the Type-C MUTT. Some systems may take somewhat longer than expected to enumerate the device when it reconnects.&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;Test Execution&lt;/H3&gt;
&lt;P&gt;&lt;BR /&gt;The Type-C MUTT allows the HLK tests to emulate and automate all scenarios in next release of the HLK that previously may have required manual intervention.&amp;nbsp; You can select all of them at once, or only run a subset of them if you wish.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;Test Cleanup&lt;/H3&gt;
&lt;P&gt;&lt;BR /&gt;The UCSI Data and Power role swap tests require UcmUcsiAcpiClient.sys rather than TestUcsi.sys. If you plan to run the UCSI Data Role Swap or UCSI Power Role Swap tests in the HLK after this test, be sure to clean up your test environment after running the UCSI compliance tests. You can do this by replacing TestUcsi.sys with the original UcmUcsiAcpiClient.sys or by reinstalling Windows on both systems.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;Troubleshooting&lt;BR /&gt;&lt;BR /&gt;&lt;/H3&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;Please review the HLK test log to determine why the test failed. In many cases, the test log will state common known causes of a given failure and how it may be resolved.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;Examine the driver logs per the guidance provided in the following blog post:&amp;nbsp;&lt;BR /&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT&gt;&lt;A href="https://techcommunity.microsoft.com/t5/Microsoft-USB-Blog/Reading-Driver-Logs-in-USB-Type-C-HLK-Tests/ba-p/270894" target="_blank" rel="noopener"&gt;https://techcommunity.microsoft.com/t5/Microsoft-USB-Blog/Reading-Driver-Logs-in-USB-Type-C-HLK-Tests/ba-p/270894&lt;/A&gt;&lt;/FONT&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI style="list-style-type: none;"&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;If the test failure is unclear from both the test and driver logs or you believe it to be incorrect, and you are going to reach out to Microsoft for additional guidance, please prepare the following when reporting the issue to us. This will help us get to the bottom of your bug report as quickly as possible! &lt;/SPAN&gt;&lt;BR /&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;The HLKX package containing the failed test result. This will contain the failed test log as well as driver and Type-C MUTT firmware logs we may need to review.&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;An explanation of what diagnostic efforts you have already applied and why they were inconclusive: &lt;/SPAN&gt;
&lt;UL&gt;
&lt;LI&gt;&amp;nbsp;Was the test log inconclusive or confusing? (We'd love to hear feedback in order to make them better!)&lt;/LI&gt;
&lt;LI&gt;Do you believe the test result to be incorrect, and if so, why?&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;If you believe a test failure to be in error, do you have passing logs from the same test case in Windows 10 April 2018 Update HLK? If so, please provide them. Or do you have other evidence (e.g. driver traces, PD trace, etc.) that would demonstrate the PPM behaving properly in the scenario under test?&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 02 May 2024 19:09:25 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-usb-blog/running-usb-type-c-system-hlk-tests-with-the-type-c-mutt/ba-p/270912</guid>
      <dc:creator>Shyamal Varma</dc:creator>
      <dc:date>2024-05-02T19:09:25Z</dc:date>
    </item>
    <item>
      <title>The HMD Exerciser Kit- A Test Kit for VR HMDs</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-usb-blog/the-hmd-exerciser-kit-a-test-kit-for-vr-hmds/ba-p/270910</link>
      <description>&lt;HTML&gt;
 &lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;
  &lt;STRONG&gt;
   First published on MSDN on Jan 19, 2018
  &lt;/STRONG&gt;
  &lt;BR /&gt;
  Authored by Matthew Hartman [MSFT]
  &lt;BR /&gt;
  &lt;BR /&gt;
  To support the wave of VR HMDs coming to market, Microsoft has developed the
  &lt;A href="https://docs.microsoft.com/en-us/windows-hardware/test/hmd/windows-mixed-reality-hmd-exerciser-kit" target="_blank"&gt;
   HMD Exerciser Kit
  &lt;/A&gt;
  . This kit is based on the
  &lt;A href="https://docs.microsoft.com/en-us/windows-hardware/drivers/usbcon/test-usb-type-c-systems-with-mutt-connex-c" target="_blank"&gt;
   MUTT ConnEx platform
  &lt;/A&gt;
  and is specifically tailored for HMD testing.
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;IMG src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/56296i14B51B5CD4AF326D" /&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  The HMD Exerciser Kit provides
  &lt;BR /&gt;
  &lt;UL&gt;
   &lt;BR /&gt;
   &lt;LI&gt;
    USB Plug/Unplug/Multiplexing
   &lt;/LI&gt;
   &lt;BR /&gt;
   &lt;LI&gt;
    HDMI Plug/Unplug/Multiplexing
   &lt;/LI&gt;
   &lt;BR /&gt;
   &lt;LI&gt;
    IR User Presence Detection Spoofing
   &lt;/LI&gt;
   &lt;BR /&gt;
   &lt;LI&gt;
    Independent Display Brightness/Color Detection
   &lt;/LI&gt;
   &lt;BR /&gt;
   &lt;LI&gt;
    2x Servo Control with Independent Servo Power
   &lt;/LI&gt;
   &lt;BR /&gt;
   &lt;LI&gt;
    HMD Audio Level Monitoring
   &lt;/LI&gt;
   &lt;BR /&gt;
   &lt;LI&gt;
    USB Voltage/Current Polling
   &lt;/LI&gt;
   &lt;BR /&gt;
  &lt;/UL&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  The setup is flexible and can be designed to meet your specific test requirements. Here’s an example of how we used the HMD Exerciser Kit in our lab. In this configuration, we have also have the two motion controllers and the HMD on turntables for movement/FOV testing.
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;IMG src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/56297i499C3AAD19C4C176" /&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;H2&gt;
   HMD Exerciser Kit Hardware
  &lt;/H2&gt;
  &lt;BR /&gt;
  The kit includes two main components. The HMD Exerciser (left) and the HMD Board (right).
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;IMG src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/56298iCFC61CAA7006C17D" /&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  The HMD Exerciser is the main unit for all the connections to the HMD and PC. It handles all of the measurements, multiplexing, and PC communication. More details about the components that make up the HMD board are available in the
  &lt;A href="https://docs.microsoft.com/en-us/windows-hardware/test/hmd/hmd-exerciser-kit-hardware" target="_blank"&gt;
   Documentation
  &lt;/A&gt;
  .
  &lt;BR /&gt;
  &lt;BR /&gt;
  The HMD Board contains the hardware that interacts with the HMD’s displays and presence sensor. The two TCS34725 color sensors are placed to line up with each display. This allows independent brightness/color measurement. The IR photodiode and LED match the typical placement of IR user presence sensors. They are used in combination to spoof user presence or absence. The desired user presence state is controllable via software.
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;IMG src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/56304i5263F62141847946" /&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  The HMD Board fits in a 3D printed mount which is designed to clip securely into the HMD. This mount is designed for the Acer Windows Mixed Reality HMD.
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;IMG src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/56305i873C17D646D9D5BE" /&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  The HMD Board attaches to the HMD Exerciser using the flat ribbon cable shown above. Each HMD Exerciser can test up to two HMDs with a single PC.
  &lt;BR /&gt;
  &lt;BR /&gt;
  Find more details in the docs
  &lt;A href="https://docs.microsoft.com/en-us/windows-hardware/test/hmd/hmd-exerciser-kit-hardware" target="_blank"&gt;
   here
  &lt;/A&gt;
  .
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;H2&gt;
   HMD Exerciser Kit Software
  &lt;/H2&gt;
  &lt;BR /&gt;
  The HMD Exerciser Kit is controlled either through a command line executable or managed class. The command line utility is available in the
  &lt;A href="https://docs.microsoft.com/en-us/windows-hardware/drivers/usbcon/mutt-software-package" target="_blank"&gt;
   MUTT tools
  &lt;/A&gt;
  , and the managed class is available in the
  &lt;A href="https://github.com/Microsoft/busiotools" target="_blank"&gt;
   BusIoTools Git repo
  &lt;/A&gt;
  . Look for more details in the
  &lt;A href="https://docs.microsoft.com/en-us/windows-hardware/test/hmd/hmd-exerciser-kit-software" target="_blank"&gt;
   Microsoft Docs
  &lt;/A&gt;
  .
  &lt;BR /&gt;
  &lt;BR /&gt;
  To get started with the command line tool, identify which ports your HMD is plugged in to on the HMD Exerciser and select those ports to connect the HMD. For this example, we’ll use USB and HDMI port 1.
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;IMG src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/56306i65E763CBD23D6052" /&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  Next, tell the kit what port (1 or 2) your HMD Board is plugged in to. For this example, we’re using port 1.
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;IMG src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/56307iC151781320ECCC44" /&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  After this command, all the display/audio/presence commands will apply to the HMD on port 1. Now we can grab the HMD’s display brightness, display color and audio level. We can also set user presence spoofing if the HMD uses IR user presence detection.
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;IMG src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/56308i71CA569659FD18E3" /&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  To disconnect the USB or HDMI ports, just set the port to ‘0’ in the command
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;IMG src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/56309iCAC82DE989696C51" /&gt;
  &lt;BR /&gt;
  &lt;H2&gt;
   More Info and Purchasing
  &lt;/H2&gt;
  &lt;BR /&gt;
  Check out the HMD Exerciser Kit documentation on
  &lt;A href="https://docs.microsoft.com/en-us/windows-hardware/test/hmd/hmd-exerciser-kit-software" target="_blank"&gt;
   Microsoft Docs
  &lt;/A&gt;
  and buy the hardware
  &lt;A href="http://www.mcci.com/mcci-v5/devtools/exerciser-hmd.html" target="_blank"&gt;
   from MCCI.
  &lt;/A&gt;
 
&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 12 Oct 2018 22:56:58 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-usb-blog/the-hmd-exerciser-kit-a-test-kit-for-vr-hmds/ba-p/270910</guid>
      <dc:creator>Shyamal Varma</dc:creator>
      <dc:date>2018-10-12T22:56:58Z</dc:date>
    </item>
    <item>
      <title>Reading Driver Logs in USB Type-C HLK Tests</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-usb-blog/reading-driver-logs-in-usb-type-c-hlk-tests/ba-p/270894</link>
      <description>&lt;HTML&gt;
 &lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;
  &lt;STRONG&gt;
   First published on MSDN on Aug 03, 2017
  &lt;/STRONG&gt;
  &lt;BR /&gt;
  Authored by Philip Froese [MSFT]
  &lt;BR /&gt;
  &lt;BR /&gt;
  Newly added in the RS3 preview builds of the HLK, the USB Type-C HLK tests for UCM and UCSI will automatically capture debug traces from the relevant driver(s) during the test.
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;STRONG&gt;
   Note:
  &lt;/STRONG&gt;
  if you are used to manually capturing the driver traces, that method should no longer be used during HLK testing.&amp;nbsp; Only one trace session can be active simultaneously, so enabling a separate trace will preclude the HLK from capturing meaningful diagnostic data.&amp;nbsp; This applies only to the UCSI specific tests in the HLK.
  &lt;BR /&gt;
  &lt;H2&gt;
   Locating the Log File
  &lt;/H2&gt;
  &lt;BR /&gt;
  &lt;UL&gt;
   &lt;BR /&gt;
   &lt;LI&gt;
    After running the USB Type-C HLK test(s) of interest, switch to the
    &lt;STRONG&gt;
     Results
    &lt;/STRONG&gt;
    tab of the HLK Studio.
   &lt;/LI&gt;
   &lt;BR /&gt;
  &lt;/UL&gt;
  &lt;BR /&gt;
  &lt;P&gt;
   &lt;IMG src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/56285iFECF422EEC7E7AA8" /&gt;
  &lt;/P&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;UL&gt;
   &lt;BR /&gt;
   &lt;LI&gt;
    Expand the test result of interest and locate the failing
    &lt;STRONG&gt;
     Run Test
    &lt;/STRONG&gt;
   &lt;/LI&gt;
   &lt;BR /&gt;
  &lt;/UL&gt;
  &lt;BR /&gt;
  &lt;P&gt;
   &lt;IMG src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/56286i68F57259A06A6F12" /&gt;
  &lt;/P&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;UL&gt;
   &lt;BR /&gt;
   &lt;LI&gt;
    Right click on
    &lt;STRONG&gt;
     Run Test
    &lt;/STRONG&gt;
    , and then select
    &lt;STRONG&gt;
     Additional Files
    &lt;/STRONG&gt;
    from the context menu. You should see an
    &lt;STRONG&gt;
     .etl
    &lt;/STRONG&gt;
    file in the list.&amp;nbsp; Select
    &lt;STRONG&gt;
     Show All
    &lt;/STRONG&gt;
    to open the file location in Windows Explorer.&amp;nbsp; Copy the .etl file for the next step.
   &lt;/LI&gt;
   &lt;BR /&gt;
  &lt;/UL&gt;
  &lt;BR /&gt;
  &lt;P&gt;
   &lt;IMG src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/56287iC8C3722572C88132" /&gt;
  &lt;/P&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;H2&gt;
   Parsing the Log File using TraceView
  &lt;/H2&gt;
  &lt;BR /&gt;
  For more information and detailed instructions about using
  &lt;STRONG&gt;
   TraceView
  &lt;/STRONG&gt;
  to view existing ETL logs, see
  &lt;A href="https://docs.microsoft.com/en-us/windows-hardware/drivers/devtest/displaying-a-trace-log-with-a-pdb-file" target="_blank"&gt;
   Displaying a Trace Log with a PDB File
  &lt;/A&gt;
  .
  &lt;BR /&gt;
  &lt;UL&gt;
   &lt;BR /&gt;
   &lt;LI&gt;
    Start
    &lt;STRONG&gt;
     TraceView
    &lt;/STRONG&gt;
    , you will find it in the WDK under the
    &lt;EM&gt;
     .\Tools\&amp;lt;Architecture&amp;gt;
    &lt;/EM&gt;
   &lt;/LI&gt;
   &lt;BR /&gt;
   &lt;LI&gt;
    Select the
    &lt;STRONG&gt;
     Options
    &lt;/STRONG&gt;
    menu and
    &lt;STRONG&gt;
     Configure Symbols
    &lt;/STRONG&gt;
    . Enter the following into the
    &lt;STRONG&gt;
     Symbols Path
    &lt;/STRONG&gt;
    field to direct
    &lt;STRONG&gt;
     TraceView
    &lt;/STRONG&gt;
    to the Microsoft public symbol server, and click
    &lt;STRONG&gt;
     OK
    &lt;/STRONG&gt;
    .
   &lt;/LI&gt;
   &lt;BR /&gt;
  &lt;/UL&gt;
  &lt;BR /&gt;
  &lt;P&gt;
   &lt;EM&gt;
    SRV*&lt;A href="https://msdl.microsoft.com/download/symbols" target="_blank"&gt;https://msdl.microsoft.com/download/symbols&lt;/A&gt;
   &lt;/EM&gt;
  &lt;/P&gt;
  &lt;BR /&gt;
  &lt;P&gt;
   &lt;IMG src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/56288i6CFF1D384F3D0208" /&gt;
  &lt;/P&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;UL&gt;
   &lt;BR /&gt;
   &lt;LI&gt;
    Select the
    &lt;STRONG&gt;
     File
    &lt;/STRONG&gt;
    menu, and
    &lt;STRONG&gt;
     Open Existing Log File
    &lt;/STRONG&gt;
    .
   &lt;/LI&gt;
   &lt;BR /&gt;
   &lt;LI&gt;
    Enter the log file path and name into the
    &lt;STRONG&gt;
     Log File Name
    &lt;/STRONG&gt;
    box, or navigate to the log file with the button to the right.
   &lt;/LI&gt;
   &lt;BR /&gt;
  &lt;/UL&gt;
  &lt;BR /&gt;
  &lt;P&gt;
   &lt;IMG src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/56289i0C624799B681CF3E" /&gt;
  &lt;/P&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;UL&gt;
   &lt;BR /&gt;
   &lt;LI&gt;
    On the next menu, select the
    &lt;STRONG&gt;
     Auto
    &lt;/STRONG&gt;
    option and click
    &lt;STRONG&gt;
     OK
    &lt;/STRONG&gt;
    .
   &lt;/LI&gt;
   &lt;BR /&gt;
  &lt;/UL&gt;
  &lt;BR /&gt;
  &lt;P&gt;
   &lt;IMG src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/56290i59B4872C66380E8B" /&gt;
  &lt;/P&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;UL&gt;
   &lt;BR /&gt;
   &lt;LI&gt;
    It may take several seconds for the symbols to be retrieved and the trace parsed, but once that completes, you should see an output like the following. In this example, for clarity only the
    &lt;STRONG&gt;
     Name
    &lt;/STRONG&gt;
    ,
    &lt;STRONG&gt;
     System Time
    &lt;/STRONG&gt;
    and
    &lt;STRONG&gt;
     Message
    &lt;/STRONG&gt;
    columns are displayed.&amp;nbsp; You can change the columns by right clicking on any column header and selecting from the context menu.
   &lt;/LI&gt;
   &lt;BR /&gt;
  &lt;/UL&gt;
  &lt;BR /&gt;
  &lt;P&gt;
   &lt;IMG src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/56291i541AE724B9E235F0" /&gt;
  &lt;/P&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;H2&gt;
   Reading the Trace
  &lt;/H2&gt;
  &lt;BR /&gt;
  The driver traces contain a lot of low-level details which will not all be relevant to your investigation and may be difficult to make sense of.&amp;nbsp; However, as the example below will attempt to show, with a few tips and tricks, knowledge of the UCSI specification, and some experience, they can be valuable debugging tools.
  &lt;BR /&gt;
  &lt;BR /&gt;
  A few tips before we get to the example:
  &lt;BR /&gt;
  &lt;UL&gt;
   &lt;BR /&gt;
   &lt;LI&gt;
    When starting to investigate a failure, use the HLK test log to understand the high-level flow of the test, what action failed and the nature of the failure.
   &lt;/LI&gt;
   &lt;BR /&gt;
   &lt;LI&gt;
    Use the timestamps in the test log and in the driver trace to correlate what the test was doing with the events in the driver. This can help you isolate the area of interest to a few dozen lines of what may be a very large trace file.
   &lt;/LI&gt;
   &lt;BR /&gt;
   &lt;LI&gt;
    Familiarize yourself with the UCSI command codes (Table A-1) and command data payloads (Section 4) defined in the UCSI specification as this information will be necessary to decode portions of the driver traces.
   &lt;/LI&gt;
   &lt;BR /&gt;
   &lt;LI&gt;
    The UCSI Compliance Tests, which use the testucsi driver enable several extraneous providers for which there are no symbols. You can ignore events from
    &lt;STRONG&gt;
     Unknown Provider
    &lt;/STRONG&gt;
    in those traces.&amp;nbsp; These events are mostly useful for debugging the test code itself and may be removed from the HLK in the future.
   &lt;/LI&gt;
   &lt;BR /&gt;
   &lt;LI&gt;
    In the Ucm and Ucsi Role Swap Test traces, you will see events from
    &lt;STRONG&gt;
     UcmCx
    &lt;/STRONG&gt;
    and the
    &lt;STRONG&gt;
     PolicyManager
    &lt;/STRONG&gt;
    which you can largely ignore. The
    &lt;STRONG&gt;
     UcmUcsi
    &lt;/STRONG&gt;
    provider will contain the lowest level details and specific notifications and message payloads.
   &lt;/LI&gt;
   &lt;BR /&gt;
  &lt;/UL&gt;
  &lt;BR /&gt;
  &lt;H3&gt;
   Example
  &lt;/H3&gt;
  &lt;BR /&gt;
  In this example, the
  &lt;STRONG&gt;
   USB Type-C UCSI Power Role Swap
  &lt;/STRONG&gt;
  &lt;STRONG&gt;
   Test
  &lt;/STRONG&gt;
  has failed with the following sequence in the HLK test log:
  &lt;BR /&gt;
  &lt;P&gt;
   &lt;IMG src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/56292i0E86F8FE613C1ADD" /&gt;
  &lt;/P&gt;
  &lt;BR /&gt;
  This trace is telling us that the connector was initially a power provider.&amp;nbsp; The test then sent the Set Power Direction Role command, and re-checked the port status at which point the port was still a power provider.&amp;nbsp; Let’s look at the driver trace.
  &lt;BR /&gt;
  &lt;BR /&gt;
  First, we’ll copy UcsiRoleSwapTrace.etl from the HLK results temporary location, and open it with TraceView.&amp;nbsp; The timestamp in the test log for the SetPdr command is 8:39:13:382, so we’ll start there in the driver trace and look forwards for the Set Power Direction Role command.&amp;nbsp; We find it recorded in the trace with a timestamp 12 ms later:
  &lt;BR /&gt;
  &lt;P&gt;
   &lt;IMG src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/56293i90A75A6A8F827EBA" /&gt;
  &lt;/P&gt;
  &lt;BR /&gt;
  In this case, the UCSI test interface accessed by the HLK test records that this is a “
  &lt;STRONG&gt;
   SetPowerRole
  &lt;/STRONG&gt;
  ” command, but we can inspect the actual command in the third line to confirm that it is indeed command
  &lt;STRONG&gt;
   0xB
  &lt;/STRONG&gt;
  , which we see in Table A-1 of the UCSI specification is the
  &lt;STRONG&gt;
   SET_PDR
  &lt;/STRONG&gt;
  command.&amp;nbsp; The second line in this snippet reports that
  &lt;EM&gt;
   “Power role change to
   &lt;STRONG&gt;
    0x1
   &lt;/STRONG&gt;
   was requested.”
  &lt;/EM&gt;
  The value of 0x1 represents an internal enumeration value in the UcmCx driver which maps
  &lt;STRONG&gt;
   0x1
  &lt;/STRONG&gt;
  to the
  &lt;STRONG&gt;
   Sink
  &lt;/STRONG&gt;
  power role, and
  &lt;STRONG&gt;
   0x2
  &lt;/STRONG&gt;
  to the
  &lt;STRONG&gt;
   Source
  &lt;/STRONG&gt;
  power role.&amp;nbsp; (Please note, this does not match the Power Direction Role value specified in Table 4.24 of the UCSI specification). So, now we have confirmed that we see the correct SET_PDR command being successfully sent to the UCSI device to switch the connector to the consumer role.
  &lt;BR /&gt;
  &lt;BR /&gt;
  Next, since this was an asynchronous command, let’s look for the completion.&amp;nbsp; We find it approximately 200ms later in the trace:
  &lt;BR /&gt;
  &lt;P&gt;
   &lt;IMG src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/56294i4BA1ABD480052D7A" /&gt;
  &lt;/P&gt;
  &lt;BR /&gt;
  Here we see a notification with only bit 32 of the CCI set which per Table 3-2 of the specification is the
  &lt;STRONG&gt;
   Command Completed Indicator
  &lt;/STRONG&gt;
  .&amp;nbsp; We see that printed in the next line, which also confirms that this was command
  &lt;STRONG&gt;
   0xB
  &lt;/STRONG&gt;
  (
  &lt;STRONG&gt;
   SET_PDR
  &lt;/STRONG&gt;
  ).&amp;nbsp; The final line of this snippet is confirmation that the UCSI driver believes that the
  &lt;STRONG&gt;
   SET_PDR
  &lt;/STRONG&gt;
  to role
  &lt;STRONG&gt;
   0x1
  &lt;/STRONG&gt;
  (
  &lt;STRONG&gt;
   consumer
  &lt;/STRONG&gt;
  ) is completed successfully.
  &lt;BR /&gt;
  &lt;BR /&gt;
  Going back to the HLK log, we see that at 8:39:13.890, the test logs that the connector is still in the provider mode and fails.&amp;nbsp; This means that the test must have queried the connector status before this point, so we can go to this timestamp in the log and work backwards looking for a
  &lt;STRONG&gt;
   GET_CONNECTOR_STATUS
  &lt;/STRONG&gt;
  (
  &lt;STRONG&gt;
   0x12
  &lt;/STRONG&gt;
  ) command.&amp;nbsp; Here’s what we find:
  &lt;BR /&gt;
  &lt;P&gt;
   &lt;IMG src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/56295i0D0C3515102B35F0" /&gt;
  &lt;/P&gt;
  &lt;BR /&gt;
  We have command
  &lt;STRONG&gt;
   0x12
  &lt;/STRONG&gt;
  completing successfully with a data payload of 9 bytes based on the CCI.&amp;nbsp; See Table 3-2 of the UCSI spec to parse the specific fields in the CCI.&amp;nbsp; Reviewing section 4.5.18 of UCSI for the Get Connector Status data payload, we see that it is indeed 72 bits (or 9 bytes) long.&amp;nbsp; Now for the tricky part, what was the connector status?&amp;nbsp; Unfortunately, this is a place where the clarity of the log file is lacking and you will just have to follow these rules to interpret the connector status result:
  &lt;BR /&gt;
  &lt;UL&gt;
   &lt;BR /&gt;
   &lt;LI&gt;
    Third from the bottom is a blank log line. This indicates that none of the Connector Status Change bits were set.&amp;nbsp; If they were, this log line would contain the string names of each set Connector Status Change bits (see Table 4-46 in the specification).
   &lt;/LI&gt;
   &lt;BR /&gt;
   &lt;LI&gt;
    Second from the bottom, we have three named fields,
    &lt;STRONG&gt;
     Connect
    &lt;/STRONG&gt;
    ,
    &lt;STRONG&gt;
     PartnerFlags
    &lt;/STRONG&gt;
    and
    &lt;STRONG&gt;
     RDO
    &lt;/STRONG&gt;
    . These correspond to the
    &lt;STRONG&gt;
     Connect Status
    &lt;/STRONG&gt;
    ,
    &lt;STRONG&gt;
     Connector Partner Flags
    &lt;/STRONG&gt;
    , and
    &lt;STRONG&gt;
     Request Data Object
    &lt;/STRONG&gt;
    fields in Table 4-45 of the spec respectively.
   &lt;/LI&gt;
   &lt;BR /&gt;
   &lt;LI&gt;
    The last row of the above snippet is four single digit hexadecimal numbers. Unfortunately, these are not explicitly named in the log, but they correspond, in order, to the
    &lt;STRONG&gt;
     Power Operation Mode
    &lt;/STRONG&gt;
    ,
    &lt;STRONG&gt;
     Power Direction
    &lt;/STRONG&gt;
    ,
    &lt;STRONG&gt;
     Connector Partner Type
    &lt;/STRONG&gt;
    , and
    &lt;STRONG&gt;
     Battery Charging Status
    &lt;/STRONG&gt;
    fields of Table 4-45.
    &lt;BR /&gt;
    &lt;UL&gt;
     &lt;BR /&gt;
     &lt;LI&gt;
      If the
      &lt;STRONG&gt;
       Provider Capabilities Limited Reason
      &lt;/STRONG&gt;
      field is set, the reason will be printed as a string-name in this line as well. In our example, it is not set.
     &lt;/LI&gt;
     &lt;BR /&gt;
    &lt;/UL&gt;
    &lt;BR /&gt;
   &lt;/LI&gt;
   &lt;BR /&gt;
  &lt;/UL&gt;
  &lt;BR /&gt;
  In this example, we see that the connector is reporting a connection, it is in PD power mode, it is operating as a provider, and the partner is a UFP and operating in an alternate mode in addition to USB.
  &lt;BR /&gt;
  &lt;BR /&gt;
  This example is somewhat trivial: we went through a failure in the HLK log and simply checked that each step was completed in the driver as expected, and confirmed that the connector status did indeed report an unexpected power direction.&amp;nbsp; At this point we would need to work with the firmware engineers for this UCSI implementation to understand why the SET_PDR command completed successfully but the role did not change.
 
&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 12 Oct 2018 22:55:25 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-usb-blog/reading-driver-logs-in-usb-type-c-hlk-tests/ba-p/270894</guid>
      <dc:creator>Shyamal Varma</dc:creator>
      <dc:date>2018-10-12T22:55:25Z</dc:date>
    </item>
    <item>
      <title>Using UsbCApiCmd for basic USB Type-C validation</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-usb-blog/using-usbcapicmd-for-basic-usb-type-c-validation/ba-p/270882</link>
      <description>&lt;P&gt;&lt;STRONG&gt; First published on MSDN on Feb 01, 2017 &lt;/STRONG&gt; &lt;BR /&gt;Authored by Michelle Bergeron [MSFT] &lt;BR /&gt;&lt;BR /&gt;UsbCApiCmd is a simple tool that&amp;nbsp;you can use for basic validation&amp;nbsp;of your Type-C implementation on Windows.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;Who can use UsbCApiCmd?&lt;/H3&gt;
&lt;P&gt;&lt;BR /&gt;UsbCApiCmd&amp;nbsp;is applicable only to&amp;nbsp;USB Type-C Connectors which&amp;nbsp;use Microsoft's USB Type-C Stack, the &lt;A href="https://docs.microsoft.com/en-us/windows-hardware/drivers/usbcon/bring-up-a-usb-type-c-connector-on-a-windows-system" target="_blank" rel="noopener"&gt; USB Connector Manager&lt;/A&gt;. UcmCx.sys needs to be loaded and running on the system.&amp;nbsp;The&amp;nbsp;tool is not applicable to systems&amp;nbsp;which use&amp;nbsp;other methods to manage the USB Type-C ports.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;How to get UsbCApiCmd&lt;/H3&gt;
&lt;P&gt;&lt;BR /&gt;UsbCApiCmd is&amp;nbsp;included in&amp;nbsp;the &lt;A href="https://docs.microsoft.com/en-us/windows-hardware/drivers/usbcon/microsoft-usb-test-tool--mutt--devices" target="_blank" rel="noopener"&gt; MUTT Software Package&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;How to use UsbCApiCmd&lt;/H3&gt;
&lt;P&gt;&lt;BR /&gt;Open a command prompt or PowerShell window on&amp;nbsp;the system with the&amp;nbsp;USB Type-C&amp;nbsp;connector(s) you wish to validate. Run UsbCApiCmd.exe. &lt;BR /&gt;&lt;BR /&gt;For as long as the program is running, the&amp;nbsp;console will print out information about the USB Type-C connectors&amp;nbsp;on the system that are registered with the &lt;A href="https://docs.microsoft.com/en-us/windows-hardware/drivers/usbcon/bring-up-a-usb-type-c-connector-on-a-windows-system" target="_blank" rel="noopener"&gt; USB Connector Manager &lt;/A&gt; (UcmCx). It will also print out information&amp;nbsp;about detected Attach/Detach events on a connector. You can use it to validate that the Type-C software is seeing the events that you expect it to. &lt;BR /&gt;&lt;BR /&gt;To&amp;nbsp;stop execution, you may press Ctrl+C. &lt;BR /&gt;&lt;BR /&gt;The below example is from a system using &lt;A href="https://docs.microsoft.com/en-us/windows-hardware/drivers/usbcon/ucsi" target="_blank" rel="noopener"&gt; UCSI &lt;/A&gt; to manage its connectors with Windows.&amp;nbsp;It has not&amp;nbsp;detected any attach or detach events since the program started running. &lt;BR /&gt;&lt;BR /&gt;&lt;img /&gt; &lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 23 Jan 2019 17:46:29 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-usb-blog/using-usbcapicmd-for-basic-usb-type-c-validation/ba-p/270882</guid>
      <dc:creator>Shyamal Varma</dc:creator>
      <dc:date>2019-01-23T17:46:29Z</dc:date>
    </item>
    <item>
      <title>Setting up an environment to run USB Type-C system HLK tests</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-usb-blog/setting-up-an-environment-to-run-usb-type-c-system-hlk-tests/ba-p/270880</link>
      <description>&lt;P&gt;&lt;STRONG&gt; First published on MSDN on Jul 06, 2016 &lt;/STRONG&gt; &lt;BR /&gt; Authored by Michelle Bergeron [MSFT] and Makarand Sonare [MSFT] &lt;BR /&gt; &lt;BR /&gt; [Last updated 10/3/2017] &lt;BR /&gt; &lt;BR /&gt; There are new tests in the &lt;A href="https://msdn.microsoft.com/en-us/library/windows/hardware/dn915002(v=vs.85).aspx" target="_blank"&gt; Hardware Lab Kit (HLK) &lt;/A&gt; that target systems with USB Type-C. These tests are available for the Windows Anniversary Update version of HLK and Windows 10.&amp;nbsp;Some of the tests require extra configuration – here is a guide to help you set up your test environment for them. &lt;/P&gt;
&lt;H3&gt;USB Type-C UCSI Data and Power Role Swap tests&lt;/H3&gt;
&lt;P&gt;&lt;BR /&gt; Applicable tests &lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://msdn.microsoft.com/en-us/library/windows/hardware/mt603373(v=vs.85).aspx" target="_blank"&gt; USB Type-C UCSI Data Role Swap &lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://msdn.microsoft.com/en-us/library/windows/hardware/mt603360(v=vs.85).aspx" target="_blank"&gt; USB Type-C UCSI Power Role Swap &lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt; Hardware Requirements &lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Two &lt;A href="http://www.intel.com/content/dam/www/public/us/en/documents/technical-specifications/usb-type-c-ucsi-spec.pdf" target="_blank"&gt; UCSI 1.0 &lt;/A&gt; compliant Windows desktop systems.&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;UcmUcsi.sys must be loaded as the UCSI controller driver.&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;USB Type-C cable.&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt; Note: If your Type-C system does not use UCSI, the test will detect this and allow your system to pass. &lt;BR /&gt; Test Setup &lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Designate one system as the System Under Test (SUT) and the other as the "Partner" system.&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Install HLK client on the SUT.&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Connect the UCSI Type-C connector on the SUT to the UCSI Type-C connector on the Partner via the Type-C cable.&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Locate the device node in Device Manager (devmgmt.msc) named "UCSI USB Connector Manager". The node is under the "Universal Serial Bus controllers" category.&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Right-click on the device, and select "Properties" and open the "Details" tab.&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Select "Device Instance Path" from the drop-down and note the property value.&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Open Registry Editor (regedit.exe).&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Navigate to the device instance path under this key: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Enum\&amp;lt;device-instance-path from step 6&amp;gt;\Device Parameters&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Create a DWORD value named "TestInterfaceEnabled" and set the value to 0x1.&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Restart the device by selecting the "Disable" option on the device node in Device Manager, and then selecting "Enable". Alternatively, you can simply restart the PC.&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt; Tracing Instructions &lt;BR /&gt; Please note that for RS3 UCSI HLK tests, tracing is automatically captured as noted in this &lt;A href="https://techcommunity.microsoft.com/t5/Microsoft-USB-Blog/Reading-Driver-Logs-in-USB-Type-C-HLK-Tests/ba-p/270894" target="_blank"&gt; blog post &lt;/A&gt; . For Windows 10 Anniversary Update and Creators Update, tracing still needs to be started manually using the instructions below. &lt;BR /&gt; &lt;BR /&gt; Test failures for the UCSI data and power role swap tests can be investigated by collecting logs as per the below instructions. &lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Start WPP tracing before executing tests.&amp;nbsp;Run the following&amp;nbsp;from an elevated command prompt: &lt;BR /&gt; logman start -ets ucmucsi -ct perf -p {EAD1EE75-4BFE-4E28-8AFA-E94B0A1BAF37} 0xffffffff 0xff -o c:\ucmucsi\ucmucsilogs.etl &lt;BR /&gt; &lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Stop WPP tracing after running the tests. Add the following commands to a .cmd file and run from an elevated command prompt once the test completes. &lt;BR /&gt; logman stop ucmucsi -ets &lt;BR /&gt; &lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;You will be able to view the resulting logs in UcmUcsiLogs.etl.&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt; Test Parameters &lt;BR /&gt;Parameter NameParameter Description&lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;SwapsToPerform&lt;/TD&gt;
&lt;TD&gt;Number of data role swaps to perform. The minimum is 2 so that both host and function mode are tested.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;ValidateUsbFn&lt;/TD&gt;
&lt;TD&gt;If ValidateUsbFn = true, the test will validate function stack behavior.&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; Troubleshooting &lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;Some UCSI commands are marked "optional" in the UCSI specification. However, Microsoft requires some optional commands to be implemented in order for the UCSI driver to function. The tests may fail if you've forgotten to implement one of these commands in your BIOS. You can find that list of commands &lt;A href="https://msdn.microsoft.com/en-us/library/windows/hardware/mt710944(v=vs.85).aspx" target="_blank"&gt; here &lt;/A&gt; .&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;If the test is not detecting an attached partner &lt;BR /&gt;&lt;BR /&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;Check your cable connection to the attached partner&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;BR /&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;Check in Device Manager. Has the attached partner actually enumerated? If not... &lt;BR /&gt;&lt;BR /&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;Detach the partner&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;BR /&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;Start UCSI logging (instructions above)&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;BR /&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;Attach the partner.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;BR /&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;Stop logging.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;BR /&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;View the resulting WPP logs and check for errors.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;BR /&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;Check in Device Manager. Is the UCSI device a yellow bang? If it is... &lt;BR /&gt;&lt;BR /&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;Right click on the UCSI device and disable it.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;BR /&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;Start UCSI logging (instructions above)&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;BR /&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;Enable the UCSI device. Do whatever it takes to get the yellow bang to reproduce.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;BR /&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;Stop logging.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;BR /&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;View the resulting WPP logs and check for errors.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; &lt;/P&gt;
&lt;H3&gt;USB Type-C UCM Data and Power Role Swap tests&lt;/H3&gt;
&lt;P&gt;&lt;BR /&gt; Applicable tests &lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;USB Type-C UCM Data Role Swap&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;USB Type-C UCM Power Role Swap&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt; Hardware Requirements &lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Two Windows systems, each with a USB Type-C connector.&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;The Type-C connector on the SUT must have a UcmCx client driver. For information about developing a UcmCx client driver, visit &lt;A href="https://msdn.microsoft.com/en-us/library/windows/hardware/mt188011(v=vs.85).aspx" target="_blank"&gt; USB Type-C connector driver programming reference &lt;/A&gt; .&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;USB Type-C cable.&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt; Note: If your Type-C system implements UCSI, this test is still applicable because UcmUcsi.sys is a UcmCx client driver. &lt;BR /&gt; Test Setup &lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Designate one system as the System Under Test (SUT) and the other as the "Partner" system.&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Install HLK client on the SUT.&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Connect the Type-C connector on the SUT to the Type-C connector on the Partner via the Type-C cable.&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt; Test Parameters &lt;BR /&gt;Parameter NameParameter Description&lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;SwapsToPerform&lt;/TD&gt;
&lt;TD&gt;Number of data role swaps to perform. The minimum is 2 so that both host and function mode are tested.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;ValidateUsbFn&lt;/TD&gt;
&lt;TD&gt;If ValidateUsbFn = true, the test will validate function stack behavior.&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; Troubleshooting &lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;"No USB Type-C Connectors found with partners attached". &lt;BR /&gt;&lt;BR /&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;Check your cable connection to the partner.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;BR /&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;Check in Device Manager. Has the partner device enumerated? &lt;BR /&gt;&lt;BR /&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;If your system is using UCSI, you can take UCSI logs during attach to investigate why the attach has not been reported to the OS. UCSI logging instructions are found above.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;H3&gt;UCSI Compliance tests&lt;/H3&gt;
&lt;P&gt;&lt;BR /&gt; Applicable tests &lt;BR /&gt; This category of tests refers to all tests in the HLK with a name that begins with "UCSI". UCSI Compliance Tests are meant to test the UCSI-capable Type C system’s compliance to &lt;A href="http://www.intel.com/content/dam/www/public/us/en/documents/technical-specifications/usb-type-c-ucsi-spec.pdf" target="_blank"&gt; UCSI Specification V1.0 &lt;/A&gt; . These tests are marked as "manual" in the HLK. The test binaries are included in the HLK; however, you will need to run them yourself using the instructions below. &lt;BR /&gt; Broad Categories of UCSI Compliance Tests &lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;UCSI Command Interface tests. &lt;BR /&gt;&lt;BR /&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;Tests all of the UCSI commands that are claimed to be supported by the SUT.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;USB Operation Mode tests. &lt;BR /&gt;&lt;BR /&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;Tests all of the USB Operation Modes that are claimed to be supported by the SUT on the given Connector.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;USB Operation Role tests. &lt;BR /&gt;&lt;BR /&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;Tests all of the USB Operation Roles and role swaps that are claimed to be supported by the SUT on the given Connector.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;Power Direction Mode tests. &lt;BR /&gt;&lt;BR /&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;Tests all of the Power Direction Modes that are claimed to be supported by the SUT on the given Connector.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;Power Direction Role tests. &lt;BR /&gt;&lt;BR /&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;Tests all of the Power Direction Roles that are claimed to be supported by the SUT on the given Connector. Performs role swaps.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;UCSI Notification tests. &lt;BR /&gt;&lt;BR /&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;Tests all of the UCSI notifications that are claimed to be supported by the System Under Test on the given Connector.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt; Hardware Requirements &lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Two UCSI 1.0 compliant Windows desktop systems.&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;A href="https://docs.microsoft.com/en-us/windows-hardware/drivers/usbcon/microsoft-usb-test-tool--mutt--devices" target="_blank"&gt; Connection Exerciser hardware &lt;/A&gt; (optional - unless you are running the test from HLK Studio. If you are running the test in HLK Studio, the Connection Exerciser is required.)&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;USB Type-C PD capable cable.&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;USB 2.0 and USB 3.0 device&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Debug accessory (if supported)&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Analog audio accessory (if supported)&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt; How to Identify Connector 1 &lt;BR /&gt; All of the UCSI compliance tests assume Partner system or Devices are connected on Connector 1. To identify Connector 1, perform the following steps: &lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;On the SUT, open an &lt;A href="https://technet.microsoft.com/en-us/library/cc947813(v=ws.10).aspx" target="_blank"&gt; elevated command prompt. &lt;/A&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;From the elevated command prompt on the SUT, run the following test to identify Connector 1: &lt;BR /&gt; Te.exe UcsiComplianceTest.dll /name:TestUcsi::UcsiCommandInterfaceTests::TestIdentifyConnectorOne /p:WaitTimeInMinutes=5 &lt;BR /&gt; You must specify the WaitTimeInMinutes parameter in order for the test to pass.&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Repeat Step 2 on the Partner system to identify Connector 1.&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt; Test Setup &lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Designate one system as the System Under Test (SUT) and the other as the "Partner" system.&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Install HLK client on&amp;nbsp;both systems. &lt;STRONG&gt; You will only schedule tests on the SUT. &lt;/STRONG&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Connect the Type-B port on the Connection Exerciser Arduino to the SUT on any port other than Connector 1&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Connect Connector 1 of the SUT to J1 connector on the Connection Exerciser directly.&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Connect Connector 1 of the Partner to J2 or J3 connector on Connection Exerciser via Type-C cable.&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Install TAEF on both systems &lt;BR /&gt;&lt;BR /&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;For information about installing TAEF, refer to the TAEF &lt;A href="https://msdn.microsoft.com/en-us/library/windows/hardware/hh439627(v=vs.85).aspx" target="_blank"&gt; Getting Started &lt;/A&gt; page.&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;BR /&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Set up Te.Service on the&amp;nbsp;Partner&amp;nbsp;system. &lt;A href="https://msdn.microsoft.com/en-us/windows/hardware/drivers/taef/te-service" target="_blank"&gt; Instructions to do that are here &lt;/A&gt; .&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Install the TestUcsi.sys driver on both systems. &lt;BR /&gt;&lt;BR /&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;In Device Manager, find the device "UCSI USB Connector Manager". This device will have the driver UcmUcsi.sys installed.&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;BR /&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Right click the device and select "Update Driver Software" &lt;BR /&gt;&lt;BR /&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Enter the path to TestUcsi.inf &lt;BR /&gt;&lt;BR /&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;TestUcsi.inf and TestUcsi.sys&amp;nbsp;are located in \TestUcsi\&amp;lt;ARCHITECTURE&amp;gt;\&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;BR /&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Follow the prompts to complete the driver installation. This will replace UcmUcsi.sys with TestUcsi.sys.&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt; Test Parameters &lt;BR /&gt;Parameter NameParameter Description&lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;IsRunningOnSystemUnderTest&lt;/TD&gt;
&lt;TD&gt;Identifies whether the test is running on the System Under Test or Partner machine. &lt;BR /&gt; &lt;BR /&gt; Values: &lt;BR /&gt; &lt;BR /&gt; true - If test is executed on SUT. &lt;BR /&gt; &lt;BR /&gt; false - If test is executed on Partner.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;PartnerMachineName&lt;/TD&gt;
&lt;TD&gt;Machine name of the partner machine that is connected to the SUT using a USB C-to-C cable. The test performs TAEF network remote execution to execute code on this partner machine.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;WaitTimeInMinutes&lt;/TD&gt;
&lt;TD&gt;For tests that require manual intervention, this is the amount of time in minutes the test will wait to see the event that is expected to occur in response to the requested manual action.&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&lt;BR /&gt; Test Execution with Connection Exerciser &lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Connect the SUT and Partner system via a Connection Exerciser and Type-C Cable on Connector 1.&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Refer to the Test Setup section for more information.&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;On the SUT, run UcsiCommandInterfaceTests. &lt;BR /&gt; te.exe UcsiComplianceTest.dll /name:TestUcsi::UcsiCommandInterfaceTests::* &lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;On the SUT, run UcsiTests. &lt;BR /&gt; te.exe UcsiComplianceTest.dll /name:TestUcsi::UcsiTest::* /p: IsRunningOnSystemUnderTest=true /p:waittimeinminutes=1 /p:partnerMachine=&amp;lt;MACHINE_NAME&amp;gt; &lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt; Test Execution without Connection Exerciser &lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Connect the SUT and Partner system via a&amp;nbsp;Type-C Cable on Connector 1.&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;On the SUT, run UcsiCommandInterfaceTests. &lt;BR /&gt; te.exe UcsiComplianceTest.dll /name:TestUcsi::UcsiCommandInterfaceTests::* &lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;On the SUT, run UcsiTestsManual. &lt;BR /&gt; te.exe UcsiComplianceTest.dll /name:TestUcsi::UcsiTestsManual::* /p:IsSUT=true /p:waittimeinminutes=1 /p:partnerMachine=&amp;lt;MACHINE_NAME&amp;gt; &lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Each test requires executing some TAEF tests on the Partner system as per the instructions given on the command prompt.&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt; Example: When running UcsiTestsManual::TestDFPModeToUFP on the System Under Test: &lt;BR /&gt; CMD&amp;gt; te.exe UcsiComplianceTest.dll /name:TestUcsi::UcsiTestsManual::TestDFPModeToUFP /p:IsSUT=true /p:waittimeinminutes=1 /p:partnermachine=&amp;lt;MACHINE_NAME&amp;gt; &lt;BR /&gt; Test Authoring and Execution Framework v5.6 for x64 &lt;BR /&gt; Resetting the PPM &lt;BR /&gt; Enabling All Notifications &lt;BR /&gt; &lt;BR /&gt; StartGroup: TestUcsi::UcsiTestsManual::TestDFPModeToUFP &lt;BR /&gt; Setting USB Operation Mode to Dfp on Connector 1 &lt;BR /&gt; 1. On Partner Machine &lt;BR /&gt; Run: CMD Prompt&amp;gt;Te.exe UcsicomplianceTest.dll /p:IsSUT=false /p:waitTimeInMinutes=&amp;lt;timeInMinutes&amp;gt; /name:TestUcsi::UcsiTestsManual::TestUFPModeOnPartner &lt;BR /&gt; 2. Connect the Partner &lt;BR /&gt; 3. Waiting for 1 minutes &lt;BR /&gt; &lt;BR /&gt; Waiting for:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ConnectChange &lt;BR /&gt; &lt;BR /&gt; The above test sets Connector 1's USB Operation Mode to DFP on the SUT. It then requires you to run the following command on the Partner system: &lt;BR /&gt; Te.exe UcsicomplianceTest.dll /p:IsSUT=false /p:waitTimeInMinutes=&amp;lt;timeInMinutes&amp;gt; /name:TestUcsi::UcsiTestsManual::TestUFPModeOnPartner &lt;BR /&gt; Tracing Instructions &lt;BR /&gt; Test failures for the UCSI compliance tests can be investigated by collecting logs as per the below instructions. &lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Start WPP tracing before executing tests. Add the following commands to a .cmd file and run from an elevated command prompt: &lt;BR /&gt; logman start -ets testucsi -ct perf -p {C9ED7F4E-286B-4054-B74F-7DE43EFBCA2A} 0xffffffff 0xff -o c:\testucsi\testucsi.etl &lt;BR /&gt; logman start -ets testucsicontroller -ct perf -p {EBFD4AED-ED11-4F0C-8F37-9C93084D1530} 0xffffffff 0xff -o c:\testucsi\TestUcsiController.etl &lt;BR /&gt; logman start -ets ucsitest -ct perf -p {F8BADD54-3B0F-4B79-8389-D0ABB7AE242B} 0xffffffff 0xff -o c:\testucsi\ucsitest.etl &lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Stop WPP tracing after running the tests. Add the following commands to a .cmd file and run from an elevated command prompt once the test completes. &lt;BR /&gt; logman stop testucsi -ets &lt;BR /&gt; logman stop ucsitest -ets &lt;BR /&gt; logman stop testucsicontroller -ets &lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;You will be able to view the resulting logs in UcsiTest.etl, TestUcsi.etl, and TestUcsiController.etl.&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt; Test Cleanup &lt;BR /&gt; The UCSI Data and Power role swap tests require UcmUcsi.sys rather than TestUcsi.sys. If you plan to run the UCSI Data Role Swap or UCSI Power Role Swap tests in the HLK after this test, be sure to clean up your test environment after running the UCSI compliance tests. You can do this by replacing TestUcsi.sys with the original UcmUcsi.sys or by reinstalling Windows on both systems. &lt;BR /&gt; Troubleshooting &lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;"Unable to connect to TE.Service" &lt;BR /&gt;&lt;BR /&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;Verify that you've used the above steps to configure TAEF remote execution&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;BR /&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;Verify that the machines can ping each other&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;BR /&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;Instead of using the machine name, try using its IP address. You can get an IP address of a machine using the following command in Command Prompt: &lt;BR /&gt; ping -4 &amp;lt;machine name&amp;gt; &lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;No USB error notifications while using the UCSI test driver &lt;BR /&gt;&lt;BR /&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;This is by design - the UCSI test driver exists only for the purposes of testing your PPM and does not interact with the OS in the same way as the inbox UcmUcsi.sys. To verify user notifications, please reinstall UcmUcsi.sys.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;One of my role swap tests failed because "UcsiConnectorPartnerTypePoweredCableWithUfp". &lt;BR /&gt;&lt;BR /&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;We're on it! There will be an errata for RS2 (we don't have a date for the errata release yet - sorry!) and we've already fixed it for RS3. In &amp;nbsp;the meantime, you may try to work around it by connecting a different partner and/or using a different USB cable.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;H2&gt;Selecting the tests in HLK&lt;/H2&gt;
&lt;P&gt;&lt;BR /&gt; The following steps illustrate where to find the tests in the HLK. &lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Add the SUT as your test target &lt;BR /&gt; &lt;img /&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Right click on the machine, click "Add/Modify features". Verify that System.Fundamentals.SystemUSB.USBC is selected (and System.Fundamentals.SystemUSB.USBTypeCUCSI if your system is UCSI). &lt;BR /&gt; &lt;img /&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Select the "Tests" tab. Scroll down and see that the tests are available. In the example, the SUT uses UCSI. &lt;BR /&gt; &lt;img /&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 16 Oct 2018 20:22:24 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-usb-blog/setting-up-an-environment-to-run-usb-type-c-system-hlk-tests/ba-p/270880</guid>
      <dc:creator>Shyamal Varma</dc:creator>
      <dc:date>2018-10-16T20:22:24Z</dc:date>
    </item>
    <item>
      <title>Do I need to write a driver for my USB Type-C hardware?</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-usb-blog/do-i-need-to-write-a-driver-for-my-usb-type-c-hardware/ba-p/270876</link>
      <description>&lt;P&gt;&lt;STRONG&gt; First published on MSDN on Jun 20, 2016 &lt;/STRONG&gt; &lt;BR /&gt; Authored by Michelle Bergeron [MSFT] &lt;BR /&gt; &lt;BR /&gt; Windows 10 introduced support for the USB Type-C connector. With many USB Type-C systems and devices hitting the market, the USB team is frequently asked: "If I'm building a USB peripheral device or system with a Type-C connector, do I need to write a custom driver for it to work on Windows?" &lt;BR /&gt; &lt;BR /&gt; The answer depends on the type of product you are building.&lt;/P&gt;
&lt;H3&gt;USB Type-C peripherals without alternate modes&lt;/H3&gt;
&lt;P&gt;&lt;BR /&gt; USB Type-C supports alternate modes, which allow different protocols other than USB to be carried out over the Type-C connector. &lt;BR /&gt; &lt;BR /&gt; If you're building a Type-C peripheral device that does not use alternate modes, you do not need to write a new USB client driver as long as you can use one of the inbox USB device class drivers from Microsoft. From Windows' standpoint, your device looks no different from a legacy USB device without a USB Type-C connector. &lt;BR /&gt; &lt;BR /&gt; Microsoft provides inbox drivers for several classes of USB devices. If your product is one of these device classes, you will not need to write a USB client driver because Windows' existing USB device class driver will be able to automatically work with your Type-C peripheral. Review the &lt;A href="https://msdn.microsoft.com/en-us/library/windows/hardware/ff538820(v=vs.85).aspx" target="_blank"&gt; list of USB device class drivers included in Windows &lt;/A&gt; to check if you can take advantage of one of these drivers for your product. &lt;BR /&gt; &lt;BR /&gt; You will need to write a custom driver only if you are unable to use one of Windows' built-in device class drivers. If you have determined that you must write a new client driver for your USB device, start at &lt;A href="https://msdn.microsoft.com/en-us/library/windows/hardware/hh406260(v=vs.85).aspx" target="_blank"&gt; Developing Windows client drivers for USB devices &lt;/A&gt; .&lt;/P&gt;
&lt;H3&gt;USB Type-C peripherals with alternate modes&lt;/H3&gt;
&lt;P&gt;&lt;BR /&gt; If you are bringing up a peripheral which can operate in an alternate mode, you do not need to take any extra steps in your USB driver to make it work with a Windows system that supports the alternate mode. &lt;BR /&gt; &lt;BR /&gt; However, the peripheral's alternate mode will only work if the system to which it is attached has the hardware capabilities for the specific alternate mode. Since hardware capabilities vary widely between systems, do not take any dependencies on a system supporting your alternate mode. &lt;BR /&gt; &lt;BR /&gt; When your alternate mode device is connected to a system which does not support the alternate mode, you should provide a backup experience over USB.&amp;nbsp; For example, if you are building a Type-C flash drive that uses Thunderbolt alternate mode, you will need to use the &lt;A href="https://msdn.microsoft.com/en-us/library/windows/hardware/dn653578(v=vs.85).aspx" target="_blank"&gt; USB mass storage device class &lt;/A&gt; for the case that Thunderbolt is not present on the connected PC. &lt;BR /&gt; &lt;BR /&gt; Also, you must correctly implement the Billboard specification in your device so it can notify the system if an alternate mode was not successfully entered. The &lt;A href="http://www.usb.org/developers/docs/devclass_docs/" target="_blank"&gt; Billboard Device Class specification &lt;/A&gt; is available from the USB-IF.&lt;/P&gt;
&lt;H3&gt;USB Type-C systems&lt;/H3&gt;
&lt;P&gt;&lt;BR /&gt; If you are building a system that features a USB Type-C connector, there will likely be driver or firmware work required to bring up your system in Windows. Please refer to the MSDN documentation on this subject. Start at &lt;A href="https://docs.microsoft.com/en-us/windows-hardware/drivers/usbcon/oem-tasks-for-bringing-up-a-usb-typec" target="_blank"&gt; Windows support for USB Type-C connectors &lt;/A&gt; to learn more about USB Type-C connectors on Windows and to determine the steps that you will need to take to bring up your USB Type-C system and develop a driver for it.&lt;/P&gt;
&lt;H3&gt;Further reading&lt;/H3&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://www.usb.org/developers/docs/" target="_blank"&gt; USB Specifications &lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://docs.microsoft.com/en-us/windows-hardware/drivers/usbcon/building-usb-devices-for-windows" target="_blank"&gt; Building USB devices for Windows &lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://docs.microsoft.com/en-us/windows-hardware/drivers/usbcon/usb-driver-testing-guide" target="_blank"&gt; Testing USB hardware, drivers, and apps in Windows &lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 16 Oct 2018 20:25:45 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-usb-blog/do-i-need-to-write-a-driver-for-my-usb-type-c-hardware/ba-p/270876</guid>
      <dc:creator>Shyamal Varma</dc:creator>
      <dc:date>2018-10-16T20:25:45Z</dc:date>
    </item>
    <item>
      <title>Filing USB feedback with Repro Mode in Windows 10</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-usb-blog/filing-usb-feedback-with-repro-mode-in-windows-10/ba-p/270875</link>
      <description>&lt;HTML&gt;
 &lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;
  &lt;STRONG&gt;
   First published on MSDN on Aug 17, 2015
  &lt;/STRONG&gt;
  &lt;BR /&gt;
  Authored by&amp;nbsp; Michelle Vogel [MSFT]
  &lt;BR /&gt;
  &lt;BR /&gt;
  Feedback from users is one of the many ways the USB team identifies and prioritizes issues and fixes. However, not all feedback is actionable; many times, we need detailed logs to understand what is causing and issue and sometimes which component the issue is even in. For example, you might have a USB keyboard that is not working, to fix the issue our team first needs to determine if the issue is the USB Controller, the device, the HID layer, or even in an intermediate hub. Gathering all the logs to investigate an issue can a bit painful, so we have worked to make it easy to use the capabilities of the Windows Feedback Hub application to provide the most actionable feedback as possible.
  &lt;BR /&gt;
  &lt;BR /&gt;
  This blog post details the resources available to end-users in providing the most actionable feedback to the USB team under Windows 10. A key requirement to filing actionable USB feedback is to use the Recreate my problem feature in the Windows Feedback Hub&amp;nbsp;application. Monitoring mode allows us to configure a rich set of custom log collection to help root root-cause USB issues. At the time of this writing, USB host logs can be captured on either Desktop or Mobile. If you use Recreate my problem we will get logs containing ETW traces of USB2, USB3, UsbUcx, and hub events, which are not filtered. USB function logs will not be captured. If you do not use Recreate my problem, we will not get these logs. Be aware that logs may be as small as 10mb or as large as 100mb depending on how much USB traffic and how much time you spend with Recreate my problem enabled.
  &lt;EM&gt;
   When you send feedback using Recreate my problem, please make sure you actually reproduce the issue
  &lt;/EM&gt;
  .
  &lt;BR /&gt;
  &lt;BR /&gt;
  Please continue to provide feedback on our blogs! This blog will be updated as necessary with new guidance and information. If you choose to capture your own USB logs outside of Windows Feedback Hub Repro Mode, look through our other blog entries on how to do this, for example
  &lt;A href="http://blogs.msdn.com/b/usbcoreblog/archive/2012/08/07/how-to-trace-usb-3-activity.aspx" target="_blank"&gt;
   this
  &lt;/A&gt;
  blog.
  &lt;BR /&gt;
  &lt;H3&gt;
   Windows Feedback on Desktop
  &lt;/H3&gt;
  &lt;BR /&gt;
  1. Launch the Feedback Hub from the Start menu. The Feedback Hub tile should be located in the alphabetical menu or may be pinned to your favorites.
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;IMG src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/56263iD7F2484F9418D5FF" /&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  2. After launching the Feedback Hub, select&amp;nbsp;the feedback tab from the drop down menu on the left hand side of the screen
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;IMG src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/56264iC9577947BC318517" /&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  3. From the
  &lt;EM&gt;
   Category
  &lt;/EM&gt;
  drop down menu select
  &lt;EM&gt;
   Hardware, Devices, and Drivers.
  &lt;/EM&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;IMG src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/56265i1146DB80E8A6EDF9" /&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  4. From the
  &lt;EM&gt;
   Subcategory
  &lt;/EM&gt;
  drop down menu select
  &lt;EM&gt;
   USB attached devices.
  &lt;/EM&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;IMG src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/56266iA24FC7A5438471EA" /&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  5. Click on
  &lt;EM&gt;
   Add new feedback.
  &lt;/EM&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;IMG src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/56267i3E740A109478C956" /&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  6. You should see a screen like this. Make sure you select “Problem” when filling out the form. Give a descriptive name in the summary and any details you think we need. Then select "Recreate my problem"
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;IMG src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/56268i8491A840377163F5" /&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  7. This will open up a sub menu to start your data capture. Please disconnect all other USB devices from the system except for the device on which you reproduce the issue before selecting the
  &lt;EM&gt;
   Start Capture
  &lt;/EM&gt;
  button. Then Select
  &lt;I&gt;
   Start Capture
  &lt;/I&gt;
  &lt;EM&gt;
   .
  &lt;/EM&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;IMG src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/56269i746F38F7D92E08D1" /&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  8. After clicking
  &lt;I&gt;
   Start Capture
  &lt;/I&gt;
  you will see this screen. The stopwatch logo in the bottom right corner indicates that logs are being collected.&amp;nbsp;&amp;nbsp; Proceed to duplicate whatever action caused the issue.&amp;nbsp; This will capture the USB logs while you repro the issue.
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;IMG src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/56270iB7BAB9B4828E0A5B" /&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  8. Navigate back to the application and select
  &lt;EM&gt;
   Stop Capture.
  &lt;/EM&gt;
  You should see the attachment icon below the grayed out
  &lt;I&gt;
   Start Capture
  &lt;/I&gt;
  button.
  &lt;STRONG&gt;
   If you need to abort, hit Cancel
  &lt;/STRONG&gt;
  and go back.
  &lt;STRONG&gt;
   If you need to try again, click
   &lt;EM&gt;
    Remove
   &lt;/EM&gt;
   next to Recorded background data and Recorded screenshots.
  &lt;/STRONG&gt;
  Do not&amp;nbsp;click the
  &lt;EM&gt;
   Submit
  &lt;/EM&gt;
  button if you do not want to submit your logs. If you want to look at the logs or keep a copy for yourself select the check mark next to Save a local copy of diagnostics and attachments created when giving feedback. You will be given a link to their location on the computer after you click Submit.
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;IMG src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/56271i55BA474DA8DBCE18" /&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  9. Click Submit &amp;amp; this feedback will be sent to the USB team with logs. Thank you!
  &lt;BR /&gt;
  &lt;H3&gt;
   Windows Feedback on Mobile
  &lt;/H3&gt;
  &lt;BR /&gt;
  1. Launch the Windows Feedback Hub&amp;nbsp;app from the Start screen. The Feedback Hub tile should look like this:
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;IMG src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/56272i381912BEED0A103F" /&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  2. After launching the Feedback Hub&amp;nbsp;app, select the menu icon on the top.
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;IMG src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/56273i119B1241477588CD" /&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  3. Select
  &lt;EM&gt;
   Feedback
  &lt;/EM&gt;
  from the drop down menu.
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;IMG src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/56274i9602F4160425F802" /&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  4. On the next page select the
  &lt;EM&gt;
   +
  &lt;/EM&gt;
  to add new feedback.
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;IMG src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/56275i6E602D197A083AC9" /&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  5.On the next page, make sure you select
  &lt;EM&gt;
   Problem
  &lt;/EM&gt;
  for the kind of feedback. Give a brief summary of your issue.
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;IMG src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/56276iCF1161250C3FC8E7" /&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  6. Next scroll down to select a category and subcategory and under Category select
  &lt;EM&gt;
   Hardware, Devices and Drivers.
  &lt;/EM&gt;
  Under Subcategory select
  &lt;EM&gt;
   USB attached devices.
  &lt;/EM&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;IMG src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/56277i505E5E8B6D6C15C7" /&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  7. Next scroll down until you expose
  &lt;EM&gt;
   Begin monitoring.
  &lt;/EM&gt;
  Click on it and you have 60 seconds to repeat the action that caused the error problem.&amp;nbsp;This will capture logs for the USB team to investigate while you reproduce the issue.&amp;nbsp;The red stop watch in the bottom corner of the app indicates that logs are being captured.
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;IMG src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/56278i002E51FF226DD512" /&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  8. Click
  &lt;EM&gt;
   Stop monitoring
  &lt;/EM&gt;
  to stop collecting logs.
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;IMG src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/56279iBDF1A3D07C325BFB" /&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  9. After hitting stop you will see a file icon with the name "System monitoring file".
  &lt;STRONG&gt;
   If you want to try to reproduce the issue again, select
   &lt;EM&gt;
    Remove.
   &lt;/EM&gt;
   If you no longer want to send any logs, select
  &lt;/STRONG&gt;
  &lt;EM&gt;
   &lt;STRONG&gt;
    Cancel.
   &lt;/STRONG&gt;
  &lt;/EM&gt;
  Otherwise select
  &lt;EM&gt;
   Submit
  &lt;/EM&gt;
  to send your logs.
  &lt;BR /&gt;
  &lt;BR /&gt;
  &lt;IMG src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/56280i0F3B48055BE8A33C" /&gt;
  &lt;BR /&gt;
  &lt;BR /&gt;
  10. This feedback will be provided to the USB team with logs. Thank you!
 
&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 12 Oct 2018 22:52:42 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-usb-blog/filing-usb-feedback-with-repro-mode-in-windows-10/ba-p/270875</guid>
      <dc:creator>Shyamal Varma</dc:creator>
      <dc:date>2018-10-12T22:52:42Z</dc:date>
    </item>
    <item>
      <title>What is new with Serial in Windows 10</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-usb-blog/what-is-new-with-serial-in-windows-10/ba-p/270855</link>
      <description>&lt;P&gt;&lt;STRONG&gt; First published on MSDN on Jul 29, 2015 &lt;/STRONG&gt; &lt;/P&gt;
&lt;P&gt;Authored by George Roussos [MSFT] &lt;BR /&gt; &lt;BR /&gt; The Serial Communication protocol is everywhere; it is broadly available, easy to learn, and low cost.&amp;nbsp;&amp;nbsp;&amp;nbsp;It is used across many different transports:&amp;nbsp;typically over USB, in cases over Bluetooth and even over TCP/IP.&amp;nbsp;&amp;nbsp; Many people are familiar with COM ports and programs that read data from and/or write data to them. &amp;nbsp;Today we find Serial Communications in both 30 year old hardware like natural gas meters and new products like many 3D Printers or those in the prototyping stage based upon Arduino boards. &lt;BR /&gt; &lt;BR /&gt; We listened to customer feedback on Serial while planning Windows 10 and acted upon two high level points:&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Improve Serial over USB driver support from Windows.&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Provide&amp;nbsp;a Windows Runtime API for communication with Serial devices.&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;This blog entry focuses on enhancements for USB connected Serial devices in Windows 10, and how customers can provide additional feedback on&amp;nbsp;them which we can efficiently act upon.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt; 1.&amp;nbsp;&amp;nbsp; Improved Serial over USB driver support in Windows 10 &lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Earlier versions of Windows contained a driver for USB connected serial devices: &lt;STRONG&gt; usbser.sys &lt;/STRONG&gt; . However the driver did not include a compatible ID match in an INF. The driver had to be included using modem INFs which was not standard.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In Windows 10, we added inbox support for USB CDC Abstract Control Model (ACM) compliant hardware. Usbser.sys is now installed as a compatible ID match for USB CDC compliant hardware, without requiring a 3 &lt;SUP&gt; rd &lt;/SUP&gt; party driver or inclusion via modem INFs.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Now devices that report these compatible IDs:&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;USB\Class_02&amp;amp;SubClass_02&amp;amp;Prot_01&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;USB\Class_02&amp;amp;SubClass_02&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;… including popular prototyping boards like Arduinos – just work with our built-in driver. &lt;BR /&gt; &lt;BR /&gt; Also usbser.sys has been completely re-written in WDF, improving its overall reliability as well incorporating new features for power management i.e. USB Selective Suspend.&amp;nbsp; See &lt;A href="https://docs.microsoft.com/en-us/windows-hardware/drivers/usbcon/usb-driver-installation-based-on-compatible-ids" target="_blank"&gt; USB Serial driver &lt;/A&gt; on MSDN for details.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt; 2. &lt;/STRONG&gt; &lt;STRONG&gt; A Windows Runtime API for communication with Serial devices &lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Windows 10 includes the &lt;A href="https://msdn.microsoft.com/en-us/library/windows/apps/windows.devices.serialcommunication.aspx" target="_blank"&gt; Windows.Devices.SerialCommunication &lt;/A&gt; universal API designed for these three scenarios:&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;USB Peripherals like Arduinos – including as a USB Accessory on new Phones and Tablets&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Peripherally connected USB to RS-232 Adapters&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;UARTs inside embedded&amp;nbsp; systems like MinnowBoard Max or Raspberry Pi v2 running Windows IoT SKU&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;This API does not include support for accessing UARTs/COM ports inside Phones/Tablets/PCs; Windows 10 focused on above 3 scenarios. &lt;BR /&gt; &lt;BR /&gt; //Build/ 2015 &lt;A href="https://channel9.msdn.com/Events/Build/2015/3-81" target="_blank"&gt; USB Accessories including SerialCommunications &lt;/A&gt; session introduces this API and walks thru the design and usage of it. &lt;BR /&gt; &lt;BR /&gt; Windows 10 SDK includes two Universal SDK samples illustrating this API:&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;A href="https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/CustomSerialDeviceAccess" target="_blank"&gt; CustomSerialDeviceAccess &lt;/A&gt; SDK Sample&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;New &lt;A href="https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/SerialArduino" target="_blank"&gt; SerialArduino &lt;/A&gt; SDK Sample from above //build talk is now available including C# and Arduino sketch source code.&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt; How to Provide Feedback &lt;/STRONG&gt; &lt;BR /&gt; &lt;BR /&gt; We listen and act upon customer feedback; all of above are all results of prior feedback.&amp;nbsp;&amp;nbsp; If you have encountered a problem with functionality described in this blog entry, or want additional functionality, please see below.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Our team listens to two feedback channels to provide feedback:&amp;nbsp; Forums and the Feedback App (see &lt;A href="http://answers.microsoft.com/en-us/insider/forum/insider_prog/changes-to-the-feedback-app-at-the-launch-of/67f091fa-214b-4099-b74c-eb7059dcccd2?tm=1438121798766&amp;amp;auth=1" target="_blank"&gt; Feedback App &lt;/A&gt; post for additional information) are available to everyone. &amp;nbsp;&amp;nbsp;Please follow below guidance on where to provide your feedback and what to include to help us efficiently act upon your feedback.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Forums&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Please create a new post on the &lt;A href="http://answers.microsoft.com/en-us?auth=1" target="_blank"&gt; Windows Insider Program &lt;/A&gt; forum under the ‘Devices and Drivers’ Topic.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Feedback App&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Please file a bug under: &lt;BR /&gt; &lt;EM&gt; Category: &lt;/EM&gt; Hardware, Devices, and Drivers &lt;BR /&gt; &lt;EM&gt; Sub-Category: &lt;/EM&gt; USB devices and connectivity&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt; What information to include &lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;To help us efficiently act upon any bugs for feedback you have, please include relevant information below.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Problems with built-in USBSer.sys &lt;BR /&gt; USBSerial driver for USB CDC compliant devices&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;Feedback or Bugs:&amp;nbsp; Please include ‘USBSer’ in bug title&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;Bugs, please add:&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;Crisp steps to reproduce the issue&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;Hardware IDs and Compatible IDs for target device&amp;nbsp; (below)&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;If problem involves data transfer, please include Traces as described under &lt;STRONG&gt; Tracing &lt;/STRONG&gt; below.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;Problems with Windows.Devices.SerialCommunication Universal API&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;Feedback or Bugs: Please include ‘Windows.Devices.SerialCommunication’ in bug title&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;Bugs, please add:&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;a sample code fragment that illustrates the problem&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;All App manifest device capabilities declarations,&amp;nbsp; like&lt;/LI&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;&amp;lt;DeviceCapability Name="serialcommunication"&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;lt;Device Id="any"&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;lt;Function Type="name:serialPort" /&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;lt;/Device&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;lt;/DeviceCapability&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;lt;DeviceCapability Name="serialcommunication"&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;lt;Device Id="any"&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;lt;Function Type="name:serialPort" /&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;lt;/Device&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;lt;/DeviceCapability&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt; How to capture Hardware IDs &lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Attach your Arduino, open Device Manager, select the board, select Properties, then Details tab&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Select Hardware IDs from Property dropdown&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Select the values, right click and “copy” them – and paste into the bug.&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Select Compatible IDs from Property dropdown&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;OL&gt;
&lt;LI&gt;Select the values, right click and “copy” them – and paste into the bug.&lt;/LI&gt;
&lt;/OL&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;Example: Arduino Uno R3&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Hardware IDs &lt;BR /&gt; USB\VID_2341&amp;amp;PID_0043&amp;amp;REV_0001 &lt;BR /&gt; USB\VID_2341&amp;amp;PID_0043&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Compatible IDs &lt;BR /&gt; USB\Class_02&amp;amp;SubClass_02&amp;amp;Prot_01 &lt;BR /&gt; USB\Class_02&amp;amp;SubClass_02 &lt;BR /&gt; USB\Class_02&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt; Tracing &lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Please enter the copy and paste below commands into an Administrative command window,&amp;nbsp;reproduce the problem, and attach the resultant trace files into a bug:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt; Before Repro &lt;BR /&gt; &lt;BR /&gt; &lt;/STRONG&gt; logman create trace -n Serial_WPP -o %SystemRoot%\Tracing\Serial_WPP.etl -nb 128 640 -bs 128&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;logman update trace -n Serial_WPP -p {7F82DC23-235A-4CCA-868C-59531F258662} 0x7FFFFFFF 0xFF&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;logman update trace -n Serial_WPP -p {8FBF685A-DCE5-44C2-B126-5E90176993A7} 0x7FFFFFFF 0xFF&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;logman update trace -n Serial_WPP -p {0ae46f43-b144-4056-9195-470054009d6c} 0x7FFFFFFF 0xFF&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;logman start -n Serial_WPP&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt; &lt;EM&gt; &amp;lt;Reproduce the problem at this point (do not copy and paste this)&amp;gt; &lt;/EM&gt; &lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt; AfterRepro &lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;logman stop -n Serial_WPP&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;logman delete -n Serial_WPP&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;md %systemroot%\Tracing\Logs&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;move /Y %SystemRoot%\Tracing\Serial_WPP_000001.etl %SystemRoot%\Tracing\Logs\Serial_WPP.etl&lt;/P&gt;</description>
      <pubDate>Tue, 16 Oct 2018 20:28:13 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-usb-blog/what-is-new-with-serial-in-windows-10/ba-p/270855</guid>
      <dc:creator>Shyamal Varma</dc:creator>
      <dc:date>2018-10-16T20:28:13Z</dc:date>
    </item>
    <item>
      <title>USB tests in the Windows 10 Hardware Lab Kit (HLK)</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-usb-blog/usb-tests-in-the-windows-10-hardware-lab-kit-hlk/ba-p/270854</link>
      <description>&lt;HTML&gt;
 &lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;
  &lt;STRONG&gt;
   First published on MSDN on May 14, 2015
  &lt;/STRONG&gt;
  &lt;BR /&gt;
  &lt;P&gt;
   The purpose of this blog post is to provide a resource with solutions to common problems encountered in the USB tests within the Windows 10 Hardware Lab Kit (HLK). This blog will be categorized into the following areas: “Recent/Upcoming Fixes”, “Known Issues” and “Common Questions.”
  &lt;/P&gt;
  &lt;P&gt;
   As you run these tests, please continue to provide feedback! This blog post will be updated as necessary with new guidance as it arises and old items will be phased out as test updates become widely available.
  &lt;/P&gt;
  &lt;P&gt;
  &lt;/P&gt;
  &lt;H3&gt;
   Common Questions
  &lt;/H3&gt;
  USB Internal Device Idle Test
  &lt;P&gt;
   &lt;EM&gt;
    Why is the USB Internal Device Idle Test failing? The system does not have internal devices or they are all suspended and the test still does not pass?
   &lt;/EM&gt;
  &lt;/P&gt;
  &lt;P&gt;
   Please ensure that all external USB devices are unplugged from the system under test before scheduling the test. Failure to remove all external USB devices often results in a test failure indicating that a device or multiple devices failed to suspend. All internal devices should support suspend and go to suspend during a period of inactivity.
  &lt;/P&gt;
  &lt;P&gt;
  &lt;/P&gt;
  USB-IF Certification Validation Test (Device)
  &lt;P&gt;
   &lt;EM&gt;
    I ran the USB-IF compliance tests myself, do I need to submit the logs via the HLK?
   &lt;/EM&gt;
  &lt;/P&gt;
  &lt;P&gt;
   This test records the status of USB-IF certification for the device under test. There are two ways to assert USB-IF certification. The first option is to get full certification from the USB-IF and submit the test ID (TID) supplied by the USB-IF. The second option is to download the USB-IF Compliance tools online (see test documentation for more details) and run them yourself on the device under test. If you have run and passed the required USB-IF tests yourself, then you will simply submit the following Test ID (TID) when scheduling the test in the HLK:
   &lt;STRONG&gt;
    SELF_TEST
   &lt;/STRONG&gt;
   . Using this Test ID is an assertion that the device under test has completed and passed all required USB-IF testing.
  &lt;/P&gt;
  &lt;P&gt;
  &lt;/P&gt;
  &lt;H3&gt;
   Recent/Upcoming Fixes
  &lt;/H3&gt;
  USB Exposed Port Test
  &lt;P&gt;
   Had a bug handling non-contiguous xHCI root port numbers. Manifested as a crash in the TAEF framework. Fixed in 10120.
  &lt;/P&gt;
  &lt;BLOCKQUOTE&gt;
   &lt;P&gt;
    &lt;IMG src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/56255i3B3C3078C7811E3D" /&gt;
   &lt;/P&gt;
  &lt;/BLOCKQUOTE&gt;
  USB3 Termination Test
  &lt;P&gt;
   1) Had a bug handling non-contiguous xHCI root port numbers. Manifested as an error stating that there was an “invalid string” encountered. Fixed in 10120.
  &lt;/P&gt;
  &lt;BLOCKQUOTE&gt;
   &lt;P&gt;
    &lt;IMG src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/56256i3D4ED2D4420470F5" /&gt;
   &lt;/P&gt;
  &lt;/BLOCKQUOTE&gt;
  &lt;P&gt;
   2) Unable to pass on systems without a user-connectable SuperSpeed capable USB port. The fix will be available in an upcoming release of the kit.
  &lt;/P&gt;
  &lt;P&gt;
   3) The USB3 Termination Test requires a SuperSpeed device to be attached downstream from a SuperSpeed xHCI port.&amp;nbsp; However a bug in the test precludes most SuperSpeed storage devices from being recognized.&amp;nbsp; For now, please use a SuperMUTT device, or other SuperSpeed device without a USB serial number, to run the test.&amp;nbsp; The fix will be available in an upcoming release of the kit.
  &lt;/P&gt;
  &lt;P&gt;
  &lt;/P&gt;
  USB Generic HID Test
  &lt;P&gt;
   This test requires a SuperMUTT. The version 43 firmware that shipped in an early release of the HLK caused this test to fail. Current version 44 of the firmware shipping in the latest EEAP release resolves the issue. Update to the latest HLK and from the system project, run the MUTT Firmware Update for Systems job with the SuperMUTT connected to the system, and the new firmware will be applied. Fixed in 10108.
  &lt;/P&gt;
  &lt;P&gt;
   To determine the firmware version on the SuperMUTT device, first attach the device to a Windows PC.&amp;nbsp; Open the Device Manager and locate the “SuperMUTT” under the “Universal Serial Bus devices” group.&amp;nbsp; Double click the SuperMUTT to open the Properties window and open the Details tab.&amp;nbsp; Select the “Hardware Ids” property.&amp;nbsp; You will see a hardware Id string like the following: USB\VID_045E&amp;amp;PID_078F&amp;amp;REV_0044.&amp;nbsp; The last number is the firmware version number, in this example it is version 44.&amp;nbsp; If your device ID shows REV_0043, you need to follow the procedure above to update to version 44.
  &lt;/P&gt;
  &lt;BLOCKQUOTE&gt;
   &lt;P&gt;
    &lt;IMG src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/56257i867A754F08E49242" /&gt;
   &lt;/P&gt;
  &lt;/BLOCKQUOTE&gt;
  &lt;P&gt;
  &lt;/P&gt;
  &lt;H3&gt;
   Known Issues
  &lt;/H3&gt;
  USB (USBDEX) Verifier Test  Problem
  &lt;P&gt;
   A kit infrastructure issue is causing this test to fail to load the correct logging module in recent release of the kit which cases the “Disable Flags” setup task to fail.&amp;nbsp; Expanding the error simply shows it failing with exit code 1.
  &lt;/P&gt;
  &lt;BLOCKQUOTE&gt;
   &lt;P&gt;
    &lt;IMG src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/56258iB52A34B66E4DEB25" /&gt;
   &lt;/P&gt;
  &lt;/BLOCKQUOTE&gt;
  Solution
  &lt;P&gt;
   The work-around for running this test until the kit infrastructure issue is resolved is to manually register the appropriate logging module:
  &lt;/P&gt;
  &lt;BLOCKQUOTE&gt;
   &lt;P&gt;
    - On the client PC, open an administrator command prompt
   &lt;/P&gt;
  &lt;/BLOCKQUOTE&gt;
  &lt;BLOCKQUOTE&gt;
   &lt;P&gt;
    - Navigate to the following folder: &amp;lt;SystemDrive&amp;gt;:\Program Files\Windows Kits\10\Hardware Lab Kit\Client\
   &lt;/P&gt;
  &lt;/BLOCKQUOTE&gt;
  &lt;BLOCKQUOTE&gt;
   &lt;P&gt;
    - Run: “regsvr32 /s wttlogcm.dll”
   &lt;/P&gt;
  &lt;/BLOCKQUOTE&gt;
  &lt;BLOCKQUOTE&gt;
   &lt;P&gt;
    - Re-schedule the test through the HLK Studio
   &lt;/P&gt;
  &lt;/BLOCKQUOTE&gt;
  &lt;P&gt;
  &lt;/P&gt;
  USB Serial Number Test  Problem
  &lt;P&gt;
   There is a known limitation in this test such that if the device under test provides a serial number, both instances must be in D0 for the test to correctly read the serial number strings. The failure pattern is an error statement saying that the serial number string was not NULL terminated, which is incorrect, the test actually wasn’t able to retrieve it at all.
  &lt;/P&gt;
  &lt;BLOCKQUOTE&gt;
   &lt;P&gt;
    &lt;IMG src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/56259iE97C28C00C1D4294" /&gt;
   &lt;/P&gt;
  &lt;/BLOCKQUOTE&gt;
  Solution
  &lt;P&gt;
   Ensure that the device is in D0 when the test runs. The test run only takes a few seconds so this can be as simple as re-attaching in the devices immediately before scheduling the test so it executes before the suspend timeout occurs, or using the device during the test (move/click input device, access network, read/write files, etc.)
  &lt;/P&gt;
  USB Device Connection S3 + S4 + Connected Standby  And USB Hardware Verifier Test  Problem
  &lt;P&gt;
   These tests may fail on some systems with incomplete xHCI port mapping reported by the system. This is a problem with the HLK client PC firmware, not with the device under test. The failure pattern is an error statement saying that “IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES returned invalid port number.”
  &lt;/P&gt;
  &lt;BLOCKQUOTE&gt;
   &lt;P&gt;
    &lt;IMG src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/56260i572B80D3797121EE" /&gt;
   &lt;/P&gt;
  &lt;/BLOCKQUOTE&gt;
  Solution
  &lt;P&gt;
   Fortunately on common platforms we have seen with this issue, the problematic port mapping is only for a few of the ports, and other ports are properly mapped and able to fully support device level testing. To find a usable port, run USBView, and be sure the device under test is connected to a port with a non-zero “Companion Port Number”. Unfortunately some tests are dependent on the Device Instance ID so you cannot simply change ports during the middle of a test project, if for example the device does not support a unique serial number. If you find that the host platform has this port mapping problem, you may need to re-create the project with the device under test connected to one of the good ports.
  &lt;/P&gt;
  &lt;P&gt;
  &lt;/P&gt;
  USB xHCI Transfer Speed Test  And USB3 Termination Test  Problem
  &lt;P&gt;
   These are system level tests that fail for the same reason as USB Device Connection and USB Hardware Verifier tests: incomplete xHCI port mappings reported by the system. Since these are system tests, this is indeed a problem with the system under test that needs to be corrected. However the USB Exposed Port Test is specifically checking the port mappings and it is still valuable to validate the transfer speed and SuperSpeed terminations on these platforms. The failure pattern will manifest as an error stating that an “invalid” device or port was detected.
  &lt;/P&gt;
  &lt;BLOCKQUOTE&gt;
   &lt;P&gt;
    &lt;IMG src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/56261i86D0CA72F8CE8BC0" /&gt;
   &lt;/P&gt;
  &lt;/BLOCKQUOTE&gt;
  Solution
  &lt;P&gt;
   Attach the SuperSpeed device, for example a SuperMUTT, to a port on the system that is properly mapped. You can confirm in USBView if there is such a port on the system by checking the SuperSpeed port nodes for one where the “Companion Port Number” is non-zero.
  &lt;/P&gt;
  USB3 Termination Test  Problem
  &lt;P&gt;
   The test may fail with the following error indicating that no USB 2.0 companion ports were found in the ETW rundown:
  &lt;/P&gt;
  &lt;P&gt;
   &lt;IMG src="https://techcommunity.microsoft.com/t5/image/serverpage/image-id/56262iAA5B850E6A25337D" /&gt;
  &lt;/P&gt;
  Solution
  &lt;P&gt;
   Errata number 5597 has been provided to filter out this error.&amp;nbsp; Please apply the latest errata to your submission if you see this error in the test log for the USB3 Termination Test.
  &lt;/P&gt;
 
&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 12 Oct 2018 22:49:33 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-usb-blog/usb-tests-in-the-windows-10-hardware-lab-kit-hlk/ba-p/270854</guid>
      <dc:creator>Shyamal Varma</dc:creator>
      <dc:date>2018-10-12T22:49:33Z</dc:date>
    </item>
    <item>
      <title>New in Windows 10: USB Dual Role on Mobile</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-usb-blog/new-in-windows-10-usb-dual-role-on-mobile/ba-p/270845</link>
      <description>&lt;HTML&gt;
 &lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;
  &lt;STRONG&gt;
   First published on MSDN on May 11, 2015
  &lt;/STRONG&gt;
  &lt;BR /&gt;
  &lt;P&gt;
   Authored by Andrea Keating [MSFT]
  &lt;/P&gt;
  &lt;P&gt;
   Have you ever wanted to watch the video that was sitting on your flash drive when all you have is your phone? What about editing a Microsoft Word document from your phone with the comforts of a “real” keyboard and mouse? Are you a developer who wants to make USB accessories that work with both Windows Mobile and Desktop devices? Well, in Windows 10 now you can…
  &lt;/P&gt;
  &lt;P&gt;
   In Windows 10, Microsoft is introducing support for USB Dual Role. USB Dual Role refers to the ability of a system to behave as a USB Device or a USB Host. This is a really exciting feature as it adds the ability to use your USB devices with your Mobile phone for the first time ever in Windows!
  &lt;/P&gt;
  &lt;P&gt;
   Please note, this feature will only be available on
   &lt;B&gt;
    new
   &lt;/B&gt;
   Windows 10 devices that support USB Dual Role. This is because of the hardware changes required for the USB port to support device enumeration. While there are devices in the market today that have USB Dual Role capable controllers, the platforms were not designed to support USB Dual Role. New hardware may advertise that they are Dual Role capable.
  &lt;/P&gt;
  &lt;P&gt;
   To support these new devices on the Windows 10 Mobile OS, we are including the following class drivers. These class drivers have been selected for inclusion in Windows 10 for Mobile due to (a) their popularity and (b) key Windows 10 scenarios we are enabling.
  &lt;/P&gt;
  &lt;P&gt;
  &lt;/P&gt;
  &lt;TABLE&gt;
   &lt;TBODY&gt;&lt;TR&gt;
    &lt;TD&gt;
     &lt;P&gt;
      &lt;B&gt;
       USB Host class drivers supported on Windows 10 for phones
      &lt;/B&gt;
     &lt;/P&gt;
    &lt;/TD&gt;
    &lt;TD&gt;
     &lt;P&gt;
      &lt;B&gt;
       Examples of Devices Covered by these drivers
      &lt;/B&gt;
     &lt;/P&gt;
    &lt;/TD&gt;
   &lt;/TR&gt;
   &lt;TR&gt;
    &lt;TD&gt;
     &lt;P&gt;
      USB Hubs (USBHUB)
     &lt;/P&gt;
    &lt;/TD&gt;
    &lt;TD&gt;
     &lt;P&gt;
      USB Hubs
     &lt;/P&gt;
    &lt;/TD&gt;
   &lt;/TR&gt;
   &lt;TR&gt;
    &lt;TD&gt;
     &lt;P&gt;
      HID (HidClass, KBDCLass, MouClass, KBDHid, MouHid)
     &lt;/P&gt;
    &lt;/TD&gt;
    &lt;TD&gt;
     &lt;P&gt;
      Keyboard, mouse
     &lt;/P&gt;
    &lt;/TD&gt;
   &lt;/TR&gt;
   &lt;TR&gt;
    &lt;TD&gt;
     &lt;P&gt;
      USB Mass Storage (Bulk &amp;amp; UASP)
     &lt;/P&gt;
    &lt;/TD&gt;
    &lt;TD&gt;
     &lt;P&gt;
      Flash Drive
     &lt;/P&gt;
    &lt;/TD&gt;
   &lt;/TR&gt;
   &lt;TR&gt;
    &lt;TD&gt;
     &lt;P&gt;
      USB Audio in / out (USBAUDIO)
     &lt;/P&gt;
    &lt;/TD&gt;
    &lt;TD&gt;
     &lt;P&gt;
      Speakers
     &lt;/P&gt;
    &lt;/TD&gt;
   &lt;/TR&gt;
   &lt;TR&gt;
    &lt;TD&gt;
     &lt;P&gt;
      Serial Devices (USBSER)
     &lt;/P&gt;
    &lt;/TD&gt;
    &lt;TD&gt;
     &lt;P&gt;
      Arduino
     &lt;/P&gt;
    &lt;/TD&gt;
   &lt;/TR&gt;
   &lt;TR&gt;
    &lt;TD&gt;
     &lt;P&gt;
      Bluetooth (BTHUSB)
     &lt;/P&gt;
    &lt;/TD&gt;
    &lt;TD&gt;
     &lt;P&gt;
      Bluetooth dongle
     &lt;/P&gt;
    &lt;/TD&gt;
   &lt;/TR&gt;
   &lt;TR&gt;
    &lt;TD&gt;
     &lt;P&gt;
      Generic USB Host Driver (WinUSB)
     &lt;/P&gt;
    &lt;/TD&gt;
    &lt;TD&gt;
     &lt;P&gt;
      Scientific Data Acquisition
     &lt;/P&gt;
    &lt;/TD&gt;
   &lt;/TR&gt;
  &lt;/TBODY&gt;&lt;/TABLE&gt;
  &lt;P&gt;
  &lt;/P&gt;
  &lt;P&gt;
   The Windows team will continue to monitor the top devices that are plugged into a Windows 10 Mobile system. With this data in hand, we will be in a position to know which additional drivers should be considered for inclusion in future release of Windows. Leveraging WinUSB and our WinRT APIs, a developer can create a custom device that works with a custom app on the Windows Mobile OS.
  &lt;/P&gt;
  &lt;P&gt;
   For more details:
  &lt;/P&gt;
  &lt;P&gt;
   · The
   &lt;I&gt;
    Enabling New USB Connectivity Scenarios WinHEC
   &lt;/I&gt;
   presentation here:
   &lt;A href="https://channel9.msdn.com/Events/WinHEC/2015/WHT200" target="_blank"&gt;
    https://channel9.msdn.com/Events/WinHEC/2015/WHT200
   &lt;/A&gt;
  &lt;/P&gt;
  &lt;P&gt;
   · The
   &lt;I&gt;
    Building New Apps for USB Accessories
   &lt;/I&gt;
   //BUILD presentation here:
   &lt;A href="https://channel9.msdn.com/events/Build/2015/3-81" target="_blank"&gt;
    https://channel9.msdn.com/events/Build/2015/3-81
   &lt;/A&gt;
  &lt;/P&gt;
  &lt;P&gt;
   · Developer documentation is also available on MSDN here:
   &lt;A href="https://msdn.microsoft.com/en-us/library/windows/hardware/dn957036(v=vs.85).aspx" target="_blank"&gt;
    https://msdn.microsoft.com/en-us/library/windows/hardware/dn957036(v=vs.85).aspx
   &lt;/A&gt;
  &lt;/P&gt;
 
&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 12 Oct 2018 22:48:10 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-usb-blog/new-in-windows-10-usb-dual-role-on-mobile/ba-p/270845</guid>
      <dc:creator>Shyamal Varma</dc:creator>
      <dc:date>2018-10-12T22:48:10Z</dc:date>
    </item>
  </channel>
</rss>

