29
Building best-in-class Miracast solutions with Windows 10 Version 1.1 April 2017 Abstract Miracast is a wireless display standard designed for mirroring screen content to an array of devices that collectively provide a great user experience. Quality Wi-Fi, graphics, composition, media encoders/decoders, and third party components are fundamental to this experience.

Abstractdownload.microsoft.com/download/3/F/9/3F9F0453-04AE-4E4B... · Web viewThis document is intended to provide Wi-Fi IHVs, graphics IHVs, PC OEMs, and Miracast receiver manufacturers

Embed Size (px)

Citation preview

Building best-in-class Miracast solutions with

Windows 10Version 1.1

April 2017

AbstractMiracast is a wireless display standard designed for mirroring screen content to an array of devices that collectively provide a great user experience. Quality Wi-Fi, graphics, composition, media encoders/decoders, and third party components are fundamental to this experience. This document is intended to provide Wi-Fi IHVs, graphics IHVs, PC OEMs, and Miracast receiver manufacturers guidance to help ensure products designed for Miracast, deliver a best-in-class Windows 10 experience.

Revision History

Revision 1.0 Creation of document

Revision 1.1 Addition of “Miracast over Infrastructure” guidance

Copyright

This document is provided "as-is." Information and views expressed in this document, including URL and other Internet Web site references, may change without notice.

Some examples depicted herein are provided for illustration only and are fictitious. No real association or connection is intended or should be inferred.

This document does not provide you with any legal rights to any intellectual property in any Microsoft product. You may copy and use this document for your internal, reference purposes.

© 2016 Microsoft. All rights reserved.

Please refer to Microsoft Trademarks for a list of trademarked products.

Intel is a registered trademark of Intel Corporation.

All other trademarks are property of their respective owners.

Table of ContentsAbstract..................................................................................................................................1Revision History......................................................................................................................2

Revision 1.0.........................................................................................................................2

© 2016 Microsoft. All rights reserved.2

Revision 1.1.........................................................................................................................2Overview.................................................................................................................................5

Miracast in Windows 10.......................................................................................................5Understanding Windows Miracast functionality...................................................................6Miracast receiver Connect app............................................................................................8

PC manufacturers designing for Miracast..............................................................................10Wi-Fi devices......................................................................................................................10Graphics devices................................................................................................................10Audio devices:...................................................................................................................11

Hardware manufacturers (IHVs) designing for Miracast........................................................12Wi-Fi device features for Miracast......................................................................................12WDI driver testing for Miracast:.........................................................................................12Supporting Miracast features:............................................................................................12Extended channel switch announcement (eCSA)...............................................................12

For IHVs creating Miracast Receivers....................................................................................13Miracast-specific features to support.................................................................................13Wi-Fi features....................................................................................................................13

IP address allocation in EAPOL-key frames.....................................................................13Extended channel switch announcement (eCSA)...........................................................13Updates to WPS information elements (IEs) for telemetry..............................................14Miracast over Infrastructure...........................................................................................14

Graphic features................................................................................................................14Support for the hardware cursor....................................................................................14

Media features...................................................................................................................14Diagnostic capabilities...................................................................................................14Support for Intel friendly name.......................................................................................15Support for Intel’s receiver device URL..........................................................................15Support for Intel’s receiver manufacturer logo...............................................................15Support for Intel’s receiver manufacturer name.............................................................15Support for Intel’s receiver model name........................................................................15Support for Intel’s receiver version................................................................................15Support for enhanced diagnostics..................................................................................15Support for source receiver version...............................................................................16Support IDR requests.....................................................................................................16Support for additional video formats..............................................................................16

© 2016 Microsoft. All rights reserved.3

Performance enhancements..............................................................................................16End of frame marker......................................................................................................16Adjusting the latency to provide a better experience in each scenario..........................17

Stream enhancements.......................................................................................................17Support for CABAC.........................................................................................................17Dynamically switch the resolution and frame rate.........................................................17

Extended functionality.......................................................................................................18UIBC support..................................................................................................................18Microsoft real time bitrate modulation...........................................................................18

Technical details and validation............................................................................................18How to verify that you are running a WDI driver............................................................18IP address allocation in EAPOL-key frames technical details:.........................................18Extended channel switch announcement (eCSA) technical details.................................19Updates to WPS Information Elements (IEs) for Telemetry Technical Details.................19Support for H/W Cursor Technical Details.......................................................................19Validating Window 10 Miracast Extensions....................................................................20How to verify that a Miracast connection was established over Wi-Fi Direct vs. Infrastructure.................................................................................................................21

References............................................................................................................................23

© 2016 Microsoft. All rights reserved.4

OverviewMiracast is a wireless display standard designed for mirroring your screen to an array of devices. Quality Wi-Fi, Graphics, Composition, Media encoders/decoders and third party components are fundamental to this experience. This document provides Wi-Fi IHVs, Graphics IHVs, PC OEMs and Miracast receiver manufacturers guidance to help ensure products designed for Miracast, deliver a ‘Best-in-Class’ Windows 10 experience.

Figure 1: Miracast Components

Miracast in Windows 10 Support for Miracast began in Windows 8.1, and since that time Windows investments in Miracast as a projection experience has increased. Windows 10 delivers the most notable features to date, including:

A native connection experience that allows a user to find and connect to Miracast receivers.

Implementation of the Miracast standard to interoperate with the broadest set of hardware.

A native Miracast RTSP stack fine-tuned to work for Miracast, which means no additional software is required outside the Windows 10 OS.

Support for UIBC (User Input Back Channel), so that a Miracast receiver can be used to control the Miracast source.

Support for Miracast extensions that enable additional capabilities that dramatically improve the Miracast experience.

© 2016 Microsoft. All rights reserved.5

High quality interaction with industry leading Microsoft Miracast receivers as well as leading 3rd party Miracast receivers.

A soft receiver - Miracast receiver app (Connect) ships inbox in the Windows 10 Anniversary update on compatible devices.

Support for the projection of Protected Content. The ability to remember a profile for reconnecting to Miracast receivers that are

frequently used which reduces subsequent connection times.

Understanding Windows Miracast functionalityWindows 10 provides native functionality that fades into the background to provide a seamless Miracast experience. As you are building your solution it is important to understand what that functionality is. First and foremost, Windows provides a native connection experience that allows a user to connect to a Miracast receiver. Once that connection is made the UI fades into the background. A Miracast connection can be made in several ways:

Action Center. In the Action Center (Figure 2), click Connect. Connect UI. Select Windows logo key+ K (Figure 3). Device Picker UI. Windows Apps that support casting contain a device picker UI,

such as the Cast to device feature in the Windows Movie & TV App (Figure 4).

Figure 2: Connect Quick Action Figure 3: Connect UI Figure 4: Device Picker UI

© 2016 Microsoft. All rights reserved.6

And if there is a need to remove a previously paired device Miracast device: Removing Previously Paired Devices in Miracast: Go to Settings, click

Devices, click Connected Devices, select the device to remove, and then click Remove device (Figure 5).

Figure 5: Removing a Miracast Sink from a Win10 Miracast source device In addition to an integrated user experience Windows also provides the following Miracast functionality:

A single extensible RTSP stack across all Windows devices. Smooth functionality with any Win10 device brings interoperability with hundreds of millions of Windows 10 Miracast senders and receivers.

The ability to stream both clear and protected content (HDCP) if HDCP keys are present.

UIBC (User Input Back Channel), which allows inputs from the Miracast receiver (touch, stylus, mouse, keyboard and gamepad) to control the Miracast sender, if—and only if—the user explicitly allows this.

Several extensions from Intel and MSFT (4k AVC (H264), latency management, bitrate modulation, 3:2 support, and more). Miracast extensions allow additional functionality not otherwise found in the Miracast specification to be supported.

Push button pairing, auto push button, and PIN based paring, the most common methods for pairing with a Miracast receiver.

Persistent profiles, which remembers if you have connected to a given Miracast receiver in the past. This gives faster reconnections to the same Miracast receiver. And if persistent profiles are not supported on the receiver, then Windows 10 adjusts to that situation as well.

© 2016 Microsoft. All rights reserved.7

Automatically adjusts to its role during connection negotiation. Because Miracast uses a Wi-Fi Direct connection, Windows clients have the ability to assume one of several Wi-Fi Direct roles dynamically. It is important to note that while the Windows client will prefer to act as the Wi-Fi Direct GO (Intent 14) it is fully capable of acting as a GC or and Auto-GO as well.

IP address assignment during the connection sequence, reducing the time to connect.

Windows will reconnect quickly to previously paired Miracast receivers. Reconnection time to well-designed Miracast sinks can take less than three seconds.

Miracast receiver Connect app In the Windows 10 Anniversary Update, Microsoft released an app-based Miracast receiver feature. This ‘Connect app’ feature gives any Miracast Sender the ability to connect and project to a device that is running Windows 10 Anniversary Update and which is capable of using Miracast.

To start the Connect app, select the Windows Logo key . On the application list, select the Connect app. Windows validates the ‘Sink’ device supports receiving a Miracast request. Once validated, Windows displays a Connection UI dialog similar to that of Figure 6.

Figure 6: Connect App

© 2016 Microsoft. All rights reserved.8

You can configure the Connect app to: Run on a lock screen. Require a PIN to allow pairing. Require a user to grant access prior to a source connection.

These settings are located in Projecting to this PC, found by selecting Settings, and then System.

Fig 7: Projecting to this PC settingsFor more info about the Windows 10 Connect App guidelines, see the Continuum for phones: FAQ.

Miracast over InfrastructureIn the Windows 10 Creators Update, Microsoft has extended the ability to send a Miracast stream over a local network rather than over a direct wireless link.

This offers a number of benefits: Windows automatically detects when sending the video stream over this path is

applicable.

© 2016 Microsoft. All rights reserved.9

Windows will only choose this route if the connection is over Ethernet or a secure Wi-Fi network.

The user does not have to change how they connect to a Miracast receiver, they use the same UX as is shown in Figures 2-4.

This requires no changes to current wireless drivers or hardware. This also works well with older wireless hardware that is not optimized for Miracast

over Wi-Fi Direct. This solution leverages an existing connection which both reduces the time to

connect and provides a very stable stream.

PC manufacturers designing for Miracast To design a best-in-class Microsoft Windows 10 Miracast experience PC Manufacturers of desktops, laptops, tablets, and other form factors thoughtfully select Wi-Fi and Graphics Devices. Consider the following when approving components:

Wi-Fi devicesWindows 10 can perform Miracast over both the 2.4Ghz and 5Ghz bands and works well with an 802.11n or 802.11ac capable Wi-Fi adapter. Miracast streams data in real-time. Thoughtfully selecting a radio and antenna configuration vastly improves the performance of the Miracast experience. Typically, an 802.11ac radio using the 5Ghz band and a 2x2 antennae configuration produces a higher quality Miracast experience than any 802.11n or 1x1 combination.Ensure that Wi-Fi adapter manufacturers provide drivers specifically designed for the Windows 10 Wireless Driver Interface (WDI). Wireless drivers developed to the WDI framework are precisely designed for Miracast usage. These drivers demonstrate successfully higher connection rates and yield quality Miracast sessions.Lastly, verify Wi-Fi manufacturers successfully validated the following Windows Hardware Lab Kit (HLK) tests:

• Microsoft.Test.Networking.Wireless.WiFiDirect.BasicDiscoveryTests.*• Microsoft.Test.Networking.Wireless.WiFiDirect.BasicPairingTests.*• Microsoft.Test.Networking.Wireless.WiFiDirect.BasicReconnectTests.*

Details on the Microsoft Hardware Lab Kit (HLK) can be found on the download page for the HLK.

Graphics devicesThe Microsoft Miracast stack functions upon WDDM 2.0 (Window’s Display Driver Model) and greater. WDDM 2.0 was introduced with Windows 10. Miracast Senders: A Miracast sender’s graphics device/driver must support a hardware accelerated AVC (H264) Encoder. Note: HDCP 2.0 or greater is required to project protected content from most major video streaming content providers.

© 2016 Microsoft. All rights reserved.10

Miracast Receivers: A Miracast receiver’s graphic device/driver must support a hardware accelerated AVC (H264) Decoder. Note: HDCP 2.0 or greater is required to receive protected content from most major video streaming content providers. To design a best-in-class Microsoft Windows 10 Miracast sender/receiver the graphics device/driver should support hardware accelerated HEV encode and decode. This enables higher resolutions, for instance 4K, at higher bitrates using less bandwidth than AVC. Required

WDDM 2.0 Hardware accelerated AVC (H264) encoder (Miracast sender) Hardware accelerated AVC (H264) decoder (Miracast receiver)

Optional: HDCP 2.x transmit key (Miracast sender) HDCP 2.x Receive key (Miracast receiver) Hardware accelerated HEVC (H265) encoder (Miracast sender) Hardware accelerated HEVC (H265) decoder (Miracast receiver)

Audio devices: At minimum, an audio device/driver should support LPCM. The Miracast specification lists optional audio codecs, AAC & DD+. To maintain lower latency, Windows 10 only supports LPCM. Note: Microsoft is evaluating additional audio codec support in future releases of Windows.

© 2016 Microsoft. All rights reserved.11

Hardware manufacturers (IHVs) designing for Miracast To design a best-in-class Microsoft Windows 10 Miracast experience requires Device Manufacturers (IHVs) to adhere to high quality design and driver development standards.

Wi-Fi device features for Miracast Guidance for Wi-Fi Device Manufacturers (IHVs) developing a Miracast solution are listed as follows:Declare capability support for each of these functions through WDI. Wi-Fi Direct Device : SupportedWi-Fi Direct GO : SupportedWi-Fi Direct Client : SupportedP2P Device Discovery : SupportedExtended Channel Switch Announcement : SupportedMiracast Sink : SupportedP2P GO ports count : 1P2P Clients Port Count : 1

WDI driver testing for Miracast:Wi-Fi Device Manufacturers should successfully validate the following Windows Hardware Lab Kit (HLK) tests:

• Microsoft.Test.Networking.Wireless.WiFiDirect.BasicDiscoveryTests.*• Microsoft.Test.Networking.Wireless.WiFiDirect.BasicPairingTests.*• Microsoft.Test.Networking.Wireless.WiFiDirect.BasicReconnectTests.*

Supporting Miracast features:There are specific Miracast features that Wi-Fi Device Manufacturers should support to achieve a best-in-class Microsoft Windows 10 Miracast experience.

Extended channel switch announcement (eCSA)In almost all cases where a Windows 10 device connects to a Miracast receiver it is also simultaneously connected to a Wi-Fi access point for Internet connectivity. In many cases like this the receiver and the Wi-Fi access point will be on different wireless channels. This type of multi-channel mode typically causes video quality to degrade, because the wireless device must continually switch between channels to maintain simultaneous connectivity to both endpoints. In several cases like this, a Windows client can determine a multi-channel condition and can use eCSA to transform from Multi-Channel to Single Channel conditions.

© 2016 Microsoft. All rights reserved.12

For IHVs creating Miracast Receivers

There are a number of items that any Miracast receiver maker should take into consideration:

• Support persistent profiles: Windows supports and prefers Invitation on any subsequent reconnections to a Miracast receiver. If, however, the receiver does not support Invitation and returns a proper status (8 - Fail; Unknown P2P Group) then Windows 10 will retry with a new pairing on each connection attempt.

• If you plan to implement UIBC on a Miracast receiver, disable the Nagle algorithm, as it queues frames before sending. Queueing cursor and keyboard frames results in a poor experience. These type of packets should be sent as quickly as possible without queueing.

• During the establishment of the RTSP session, keep TCP retry intervals very low. Performing exponential back off early in the cycle results in long connect times if a single message has to be retransmitted.

• If the Miracast receiver is acting as a GO, a peer may attempt to reconnect to you. In this case you will receive an association request directly from that peer. If you no longer have a profile for that peer, fail the association with an association response frame which includes a P2P IE with status (8 - Fail; Unknown P2P Group). Windows 10 will retry the connection with a new pairing attempt.

Miracast-specific features to supportAs part of controlling the Miracast source implementation, we’ve added support for several extensions that improve the overall experience. IHV and OEMs building a Miracast receiver should consider supporting the follow features and extensions for the best Miracast experience.

Wi-Fi features IP address allocation in EAPOL-key framesImplementing IP addressing allocation in EAPOL-key reduces the amount of time taken to connect by including the IP address that the remote client should use in the Wi-Fi Direct exchange itself. The client connects more quickly by skipping the need to perform DHCP address assignment after the connection is established.

Extended channel switch announcement (eCSA)In almost all cases where a Windows 10 device connects to a Miracast receiver it is also simultaneously connected to a Wi-Fi access point for Internet connectivity. In many cases like this the receiver and the Wi-Fi access point are on different wireless channels. This type of multi-channel mode typically causes video quality to degrade since the wireless device must continually switch between channels to maintain simultaneous connectivity to both endpoints.

© 2016 Microsoft. All rights reserved.13

Windows client can sometimes determine a multi-channel condition and can use eCSA to transform from Multi-Channel to Single Channel conditions.

Updates to WPS information elements (IEs) for telemetryWindows captures the success of Miracast connections across the hundreds of Miracast receivers that are in the market. By setting a few simple fields Windows can identify the type of device Windows clients are connecting to. This allows us to reach out to you as a hardware partner if we notice that there is an incompatibility or sudden loss of quality.

Miracast over InfrastructureWith the Creators Update Windows has updated to support Miracast over Infrastructure on Windows devices running the Creators Update including Windows, Surface Hub and Xbox. We recommend that Miracast sink manufacturers follow the guidelines that are defined in the MS-MICE document to implement similar sink side functionality.

Graphic features Support for the hardware cursorMovement of the mouse cursor significantly impacts the perceived end to end (E2E) latency of the Miracast session. E2E latency is how long it takes a user to move the mouse until that movement is rendered on the Miracast display. Before hardware cursor, the mouse was a part of the encoded video stream, meaning it has the same E2E latency as the Miracast stream. Typically, this was over 100ms. Hardware cursor adds the ability to send the mouse image as well as the coordinates to the sink, where the receiver can render them over the Miracast stream. Sending the mouse data out of band from the Miracast streams allows the mouse latency to drop to sub 30ms.

Media featuresMicrosoft’s Miracast RTSP stack is extended to provide useful information while diagnosing Miracast failures, extended functionality, and better stream quality & E2E latency.

Diagnostic capabilities Microsoft Miracast stack implements a number of 1st and 3rd party extensions that are detailed in this paper. Some of these extensions are useful while diagnosing Miracast failures and creating reports. These extensions include:

Support for Intel friendly nameMicrosoft Miracast receiver supports Intel’s extension for a friendly (human readable) receiver name. This helps diagnose failures and reporting.

Support for Intel’s receiver device URL Microsoft Miracast receiver supports Intel’s extension for providing a URL for product information for the Miracast sink. This helps diagnose failures and reporting.

© 2016 Microsoft. All rights reserved.14

Support for Intel’s receiver manufacturer logoMicrosoft Miracast receiver supports Intel’s extension for specifying an image representing the manufacturer of the Miracast sink. This helps diagnose failures and reporting.

Support for Intel’s receiver manufacturer name Microsoft Miracast receiver supports Intel’s extension for Intel’s extension for specifying the name of the manufacturer of the Miracast sink. This helps diagnose failures and reporting.

Support for Intel’s receiver model nameMicrosoft Miracast receiver supports Intel’s extension for specifying the model name of Miracast Sink. This helps diagnose failures and reporting.

Support for Intel’s receiver versionMicrosoft Miracast receiver supports Intel’s extension for specifying the firmware of the Miracast sink. This helps diagnose failures and reporting.

Support for enhanced diagnostics Microsoft Miracast source supports an enhanced diagnostics protocol extension that enables the Miracast Receiver to report error codes and reasons to the Miracast Source.

Return Code Error Message Failure Condition

C00D36F0 MF_E_CANNOT_PARSE_BYTESTREAM

Cannot parse byte stream; the incoming data is not a valid MPEG-2 stream.

C00D3E8C MF_E_INVALID_FORMAT

The stream is valid, but the format (resolution, frame rate, channel count, and so on) cannot be handled.

C00D6D74 MF_E_TRANSFORM_CANNOT_CHANGE_MEDIA TYPE_WHILE_PROCESSING

The format of the H.264, AAC, or AC3 [ITU-H.264201201] bit streams changed, but the change cannot be handled.

C00D36CB MF_E_INVALID_STREAM_DATA

The H.264, AAC, or AC3 bit stream is not valid and cannot be decoded.

C00D4278 MF_E_NET_TIMEOUT

The Wi-Fi Display Receiver timed out waiting for a keep-alive or RTP data.

C00D36C0 MF_E_INVALID_TIMESTAMP

The presentation time stamps in the MPEG-2 Packetized Elementary Stream packets are corrupted, and the Wi-Fi Display Receiver can no longer render the stream

© 2016 Microsoft. All rights reserved.15

Support for source receiver version Microsoft Miracast receiver supports display source identification, which allows the version number of the Miracast source and allows for a unique identifier for the current Miracast session. These attributes help diagnose failures and reporting.

Support IDR requestsMicrosoft Miracast source supports sending instantaneous decoder refresh (IDR) requests during an RTSP M13 message. This IDRs can improve video stream if too many dropped packets have occurred or if the Miracast receiver cannot request an IDR frame.

Support for additional video formats. Microsoft Miracast source supports additional video formats, including 4k and HEVC encoding when available, including:

CEA resolutions and refresh rates with extension VESA resolutions and refresh rates with extension Display native resolution refresh rates with extension Profiles bitmap with extension Levels bitmap with extension

Performance enhancements Microsoft supports extensions to make Miracast sinks more performant in certain situations. These extensions are:

End of frame marker Microsoft Miracast source repurposes the M-Bit of the RTP packet header to denote the end of the frame in the RTP packet. A Miracast receiver looking for the M-bit can save time by starting to decode the frame contained in the RTP packets instead of waiting for the next RTP packet to arrive with the header of the next frame.

Adjusting the latency to provide a better experience in each scenarioThere are always tradeoffs between providing higher stream quality vs. ensuring lower latency. Interactive content benefits from having minimal latency and can compromise somewhat on quality, whereas media content is best when there is a high quality stream but can compromise on latency. Microsoft enables the receiver to dynamically react to what the user is doing. By introducing latency roles, a Miracast receiver can adjust its latency based on the user’s intent.

Value Description

Low Specifies that the Wi-Fi Display Receiver SHOULD keep latency under 50

© 2016 Microsoft. All rights reserved.16

milliseconds.

NormalSpecifies that the Wi-Fi Display Receiver SHOULD keep latency under 100 milliseconds.

HighSpecifies that the Wi-Fi Display Receiver SHOULD buffer additional frames in order to ensure smooth playback, as long as the latency stays under 500 milliseconds.

Stream enhancementsMicrosoft Miracast source supports extensions that produce better stream quality. These extensions are:

Support for CABACMicrosoft Miracast source adds support for Context-Adaptive Binary Arithmetic Coding (CABAC) –for AVC (H264) Baseline Profile and High Profile. This produces more efficient encoding and therefore uses less bandwidth to transmit the Miracast stream.

Dynamically switch the resolution and frame rateThe dynamic resolution and refresh rate extension allows the Miracast Source to change the video resolution or video refresh rate of the video stream without sending an additional Real-Time Streaming Protocol (RTSP) message to the Miracast Sink. If supported, the Miracast receiver monitors the sequence parameter set/picture parameter set (SPS/PPS) in the H.264 stream for changes to the video resolution or video frame rate. The receiver adapts to such changes without displaying any visible changes such as flicker or a black screen.

Extended functionalityMicrosoft Miracast source supports extensions that provide extended functionality to the Miracast experience. These extensions are:

UIBC supportUser Input Back Channel (UIBC) is an optional Wi-Fi Direct feature for sending input commands from the Miracast receiver to the Miracast sender for processing. The user can then interact naturally with the Miracast receiver’s peripherals. For example, Keyboard\Mouse\Touch\Pen inputs attached to a Miracast receiver can act as input to the Miracast Source.

Microsoft real time bitrate modulationMicrosoft Miracast source supports RTCP to track a user’s current network condition. Using packet information from RTCP in conjunction within format change capability, the Microsoft Miracast source modulates the bitrate to provide a smooth streaming experience even in poor network conditions. In addition, if a user’s network conditions are good, the bitrate increases, providing a better stream quality.

© 2016 Microsoft. All rights reserved.17

Technical details and validationThis section provides sources for technical details for the individual features referenced in this document, As well as guidance on how to validate a given feature.

How to verify that you are running a WDI driverYou can validate that a Wi-Fi driver is a WDI driver by typing the following at a CMD prompt:

NETSH WLAN SHOW WIRELESSCAPABILITIES

This returns a list of values in the output including:WDI Version (Windows)WDI Version (IHV)

If these values are all zeros, (e.g. 0.0.0.0) then this is not a WDI driver. If these values are non-zero, a WDI driver is present. This is an example of the return values from a WDI driver:

WDI Version (Windows) : 0.1.0.21

WDI Version (IHV) : 0.1.0.1

IP address allocation in EAPOL-key frames technical details:The Wi-Fi_P2P_Technical_Specification_v1.5 specification contains new methods to do IP address allocation during connection establishment instead of performing post-connection DHCP. Section 4.2.8, IP Address Allocation in EAPOL-Key Frames (4-Way Handshake) shows how to implement this functionality.To validate, use a wireless sniffer. The IP address request KDE and IP allocation KDE appear in the EAPOL-key exchange frames.

Extended channel switch announcement (eCSA) technical detailsExtended Channel Switch Announcement is defined in the 802.11-2012 specification. This specification covers the implementation in great detail in several sections including 6.3.37, 8.5.8.7, 8.4.2.55, and 10.10 among others. Please refer to this specification for technical information. How to validate: You can validate that a WDI Wi-Fi driver supports eCSA by performing the following at a CMD prompt: NETSH WLAN SHOW WIRELESSCAPABILITIES. You will see a list of values in the output including the following:Extended Channel Switch Announcement : Supported

© 2016 Microsoft. All rights reserved.18

Updates to WPS Information Elements (IEs) for Telemetry Technical DetailsWe request that you fill in the corresponding WPS Information Elements (IEs) in WPS, Wi-Fi Direct & Wi-Fi Display correct. The specific mappings that we use for Windows are:

WPS:Manufacturer: Please put in the name of the Manufacturer, likely OEM or OEM + Chipset IHV, ex: Microsoft

WPS:Model: This is the Unique Model for the device, ex: MWDA WPS:Model-Number: This is used to store the Firmware Version, ex: 1.3.8350

You can validate that the Windows 10 device can properly parse the Miracast receivers Manufacturer, Model and Model-number values by performing the following: Connect to the Miracast receiver, then go to Device Manager, and look under Software Devices. Here you will see the Miracast receiver name listed. Look at its Properties. On the Details tab look for the following 3 properties: PnP-X manufacturer, PnP-X model name, and PnP-X model number.

Support for H/W Cursor Technical DetailsA Miracast sink vendor can use the hardware cursor validation tool and a small suite of cursor to validate their hardware cursor implementation. For additional details please see [MS-WDHCE]: Wi-Fi Display Protocol: Hardware Cursor Extension

Validating Window 10 Miracast ExtensionsWin10 based Miracast source and sink support all of the above Miracast extensions. When creating a Win10 based Miracast source and sink you can validate that the extension is supported using an over the air sniffer like Wireshark. Section 3 of [MS-WFDPE]: Wi-Fi Display Protocol Extension provides an M3 request and response for each extension defined in this document. For example, to validate Support for Enhanced Diagnostics the M3 request and response captured by a sniffer would look similar to:

The following is an example of an M3 request for enhanced diagnostics GET_PARAMETER rtsp://localhost/wfd1.0 RTSP/1.0 CSeq: 2 Content-Type: text/parameters Content-Length: 69 wfd_video_formats wfd_audio_codecs microsoft_diagnostics_capability

© 2016 Microsoft. All rights reserved.19

The following is an example of an M3 response for enhanced diagnostics

RTSP/1.0 200 OK CSeq: 2 Content-Length: 388 Content-Type: text/parameters wfd_video_formats: 00 00 01 01 00000001 00000000 00000000 00 0000 0000 00 none none wfd_audio_codecs: LPCM 00000003 00 microsoft_diagnostics_capability: supported

OS Support

Driver Support

Receiver Support

Documentation

1 H/W Cursor Windows 10 None Yes MS-WDHCE

2 Latency Switching Windows 10 None Yes MS-WFDPE

3 IP Address Allocation in EAPOL-Key Frames

Windows 10 None Yes Wi-Fi_P2P_Technical_Specification_v1.5

4 Extended Channel Switch Announcement

Windows 10 Wi-Fi Yes 802.11-2012 Specification

6 Dynamic Resolution/Frame Rate

Windows 10 None Yes MS-WFDPE

7 End of Frame Marker Windows 10 None Yes MS-WFDPE

8 CABAC Support Windows 10 None Yes MS-WFDPE

9 Updates for Telemetry

Windows 10 None Yes MS-WFDPE

10 UIBC Support Windows 10 None Yes MS-WFDPE

11 Microsoft Real Time Bitrate Modulation

Windows 10 Anniversary Update

None Yes MS-WFDPE

12 Dynamically switch the Resolution and Frame Rate

Windows 10 None Yes MS-WFDPE

13 Support for Additional Video formats

Windows 10 Anniversary Update

None Yes MS-WFDPE

14 Support IDR requests Windows 10 None Yes MS-WFDPE

15 Support for Source Receiver Version

Windows 10 None Yes MS-WFDPE

16 Support for Enhanced Diagnostics

Windows 10 None Yes MS-WFDPE

© 2016 Microsoft. All rights reserved.20

17 Support for Intel’s Receiver Version

Windows 10 None Yes MS-WFDPE

18 Support for Intel’s Receiver Model Name

Windows 10 None Yes MS-WFDPE

19 Support for Intel’s Receiver Manufacturer name

Windows 10 None Yes MS-WFDPE

20 Support for Intel’s receiver Manufacturer logo

Windows 10 None Yes MS-WFDPE

21 Support for Intel’s Receiver Device URL

Windows 10 None Yes MS-WFDPE

22 Support for Intel Friendly name

Windows 10 None Yes MS-WFDPE

How to verify that a Miracast connection was established over Wi-Fi Direct vs. InfrastructureWhen testing Miracast with the Windows Creators Update you may want to verifiy that a particular connection was established over either Wi-Fi Direct or the Infrastructure connection. While there is no direct means to do this there is an indirect way to tell the connection type used for an existing Miracast session. Once you establish a Miracast session if you open the Performance tab in Task Manager you will either see a Wi-Fi connection with the term Direct in the SSID field (Figure x) or you will only see your Wi-Fi network connection (Figure y).

(Figure x)

© 2016 Microsoft. All rights reserved.21

(Figure y)

© 2016 Microsoft. All rights reserved.22

References• [MS-WFDPE]: Wi-Fi Display Protocol Extension • [MS-MICE-Preview]: Miracast over Infrastructure Connection Establishment Protocol • [MS-WDHCE]: Wi-Fi Display Protocol: Hardware Cursor Extension • Wi-Fi_P2P_Technical_Specification_v1.7 (available through http://www.wi-fi.org/)• The 802.11-2012 specification (available through http://IEEE.org )

© 2016 Microsoft. All rights reserved.23

• Wi-Fi_Simple_Configuration_Technical_Specification_v2.0.1.5 (available through http://www.wi-fi.org/ )

• Details on the Microsoft Hardware Lab Kit (HLK) can be found here.

© 2016 Microsoft. All rights reserved.24