Transient Multimon Manager (TMM) Ver. 1.1
Total Page:16
File Type:pdf, Size:1020Kb
Microsoft Mobile Platforms Division
Transient Multimon Manager (TMM) Ver. 1.1 White Paper
Published: September, 2005
Yu-Kuan Lin Program Manager, Mobile PC Business Unit
For the latest information, please see: http://msdn.microsoft.com/mobilepc
Microsoft Corporation Technical Documentation License Agreement (Standard)
READ THIS! THIS IS A LEGAL AGREEMENT BETWEEN MICROSOFT CORPORATION ("MICROSOFT") AND THE RECIPIENT OF THESE MATERIALS, WHETHER AN INDIVIDUAL OR AN ENTITY ("YOU"). IF YOU HAVE ACCESSED THIS AGREEMENT IN THE PROCESS OF DOWNLOADING MATERIALS ("MATERIALS") FROM A MICROSOFT WEB SITE, BY CLICKING "I ACCEPT", DOWNLOADING, USING OR PROVIDING FEEDBACK ON THE MATERIALS, YOU AGREE TO THESE TERMS. IF THIS AGREEMENT IS ATTACHED TO MATERIALS, BY ACCESSING, USING OR PROVIDING FEEDBACK ON THE ATTACHED MATERIALS, YOU AGREE TO THESE TERMS. 1. For good and valuable consideration, the receipt and sufficiency of which are acknowledged, You and Microsoft agree as follows:
(a) If You are an authorized representative of the corporation or other entity designated below ("Company"), and such Company has executed a Microsoft Corporation Non-Disclosure Agreement that is not limited to a specific subject matter or event ("Microsoft NDA"), You represent that You have authority to act on behalf of Company and agree that the Confidential Information, as defined in the Microsoft NDA, is subject to the terms and conditions of the Microsoft NDA and that Company will treat the Confidential Information accordingly;
(b) If You are an individual, and have executed a Microsoft NDA, You agree that the Confidential Information, as defined in the Microsoft NDA, is subject to the terms and conditions of the Microsoft NDA and that You will treat the Confidential Information accordingly; or
(c)If a Microsoft NDA has not been executed, You (if You are an individual), or Company (if You are an authorized representative of Company), as applicable, agrees: (a) to refrain from disclosing or distributing the Confidential Information to any third party for five (5) years from the date of disclosure of the Confidential Information by Microsoft to Company/You; (b) to refrain from reproducing or summarizing the Confidential Information; and (c) to take reasonable security precautions, at least as great as the precautions it takes to protect its own confidential information, but no less than reasonable care, to keep confidential the Confidential Information. You/Company, however, may disclose Confidential Information in accordance with a judicial or other governmental order, provided You/Company either (i) gives Microsoft reasonable notice prior to such disclosure and to allow Microsoft a reasonable opportunity to seek a protective order or equivalent, or (ii) obtains written assurance from the applicable judicial or governmental entity that it will afford the Confidential Information the highest level of protection afforded under applicable law or regulation. Confidential Information shall not include any information, however designated, that: (i) is or subsequently becomes publicly available without Your/Company’s breach of any obligation owed to Microsoft; (ii) became known to You/Company prior to Microsoft’s disclosure of such information to You/Company pursuant to the terms of this Agreement; (iii) became known to You/Company from a source other than Microsoft other than by the breach of an obligation of confidentiality owed to Microsoft; or (iv) is independently developed by You/Company. For purposes of this paragraph, "Confidential Information" means nonpublic information that Microsoft designates as being confidential or which, under the circumstances surrounding disclosure ought to be treated as confidential by Recipient. "Confidential Information" includes, without limitation, information in tangible or intangible form relating to and/or including released or unreleased Microsoft software or hardware products, the marketing or promotion of any Microsoft product, Microsoft's business policies or practices, and information received from others that Microsoft is obligated to treat as confidential. 2. You may review these Materials only (a) as a reference to assist You in planning and designing Your product, service or technology ("Product") to interface with a Microsoft Product as described in these Materials; and (b) to provide feedback on these Materials to Microsoft. All other rights are retained by Microsoft; this agreement does not give You rights under any Microsoft patents. You may not (i) duplicate any part of these Materials, (ii) remove this agreement or any notices from these Materials, or (iii) give any part of these Materials, or assign or otherwise provide Your rights under this agreement, to anyone else. 3. These Materials may contain preliminary information or inaccuracies, and may not correctly represent any associated Microsoft Product as commercially released. All Materials are provided entirely "AS IS." To the extent permitted by law, MICROSOFT MAKES NO WARRANTY OF ANY KIND, DISCLAIMS ALL EXPRESS, IMPLIED AND STATUTORY WARRANTIES, AND ASSUMES NO LIABILITY TO YOU FOR ANY DAMAGES OF ANY TYPE IN CONNECTION WITH THESE MATERIALS OR ANY INTELLECTUAL PROPERTY IN THEM. 4. If You are an entity and (a) merge into another entity or (b) a controlling ownership interest in You changes, Your right to use these Materials automatically terminates and You must destroy them. 5. You have no obligation to give Microsoft any suggestions, comments or other feedback ("Feedback") relating to these Materials. However, any Feedback you voluntarily provide may be used in Microsoft Products and related specifications or other documentation (collectively, "Microsoft Offerings") which in turn may be relied upon by other third parties to develop their own Products. Accordingly, if You do give Microsoft Feedback on any version of these Materials or the Microsoft Offerings to which they apply, You agree: (a) Microsoft may freely use, reproduce, license, distribute, and otherwise commercialize Your Feedback in any Microsoft Offering; (b) You also grant third parties, without charge, only those patent rights necessary to enable other Products to use or interface with any specific parts of a Microsoft Product that incorporate Your Feedback; and (c) You will not give Microsoft any Feedback (i) that You have reason to believe is subject to any patent, copyright or other intellectual property claim or right of any third party; or (ii) subject to license terms which seek to require any Microsoft Offering incorporating or derived from such Feedback, or other Microsoft intellectual property, to be licensed to or otherwise shared with any third party.
6. Microsoft has no obligation to maintain confidentiality of any Microsoft Offering, but otherwise the confidentiality of Your Feedback, including Your identity as the source of such Feedback, is governed by Your NDA.
7. This agreement is governed by the laws of the State of Washington. Any dispute involving it must be brought in the federal or state superior courts located in King County, Washington, and You waive any defenses allowing the dispute to be litigated elsewhere. If there is litigation, the losing party must pay the other party’s reasonable attorneys’ fees, costs and other expenses. If any part of this agreement is unenforceable, it will be considered modified to the extent necessary to make it enforceable, and the remainder shall continue in effect. This agreement is the entire agreement between You and Microsoft concerning these Materials; it may be changed only by a written document signed by both You and Microsoft.
Contents
Introduction: What is TMM?...... 1
Example Customer Scenarios...... 1 Adding a New Display...... 1 Undocking...... 1 Docking...... 1 Using a Wired Conference Projector...... 1
Overview...... 2 Detection...... 2 Background...... 2 Display Identification and Configuration Storage...... 3 VidList...... 3 EDID Data structure...... 4 TMM Sequence of Operations...... 4 Persistence...... 6
TMM Logo Requirements...... 7 Standard Logo Requirements...... 7 Premium Logo Requirements...... 7
User Interaction...... 7 Detailed Description...... 7 UI Flowchart...... 10 TMM State Diagrams...... 11 Draft UI Designs...... 14
Supplementation Information...... 16 Limitations...... 16 Extensibility...... 16 Edge Cases...... 16
Frequently Asked Questions...... 17
Glossary...... 18
Contact / Feedback...... 18 Introduction: What is TMM? Transient Multimon Manager (TMM) is a Microsoft® Windows Vista™ operating system feature targeted at improving the user experience of connecting and disconnecting displays, particularly for the mobile user. Currently, although Microsoft Windows® notifies the user of most hardware devices when they arrive, it does not do this consistently for displays. Windows is not aware of the arrival or removal of a display on a desktop system, and the user must manually set up and configure the display through the Windows display control panel or an independent hardware vendor (IHV) user interface (UI). On a mobile system, the experience often involves cryptic function keys, a variety of user interface, and even system reboots. It is particularly inconvenient with a transient display, a display that comes and goes, which is also unfortunately the most common scenario for mobile users. Windows Vista is committed to addressing this problem through TMM, which enables the automatic detection and setup of displays as they are attached and removed. Furthermore, TMM persists the user’s settings on a per-display basis when possible, so that users can move among multiple displays at ease. The goal is to enable users to work with displays in the same stress-free, Plug and Play fashion as with most other peripheral devices today and to alleviate the frustrations of using multiple monitors. This white paper documents the behavior and operation of TMM as well as the necessary requirements to qualify for the Windows Vista Logo.
Example Customer Scenarios
Adding a New Display A user has a laptop and a docking station at her desk, all connected to an external display. The first time she connects the laptop to the docking station. TMM automatically mirrors her desktop to the monitor and displays a dialog box so she can choose her settings. She decides she likes the extended desktop better than the mirrored desktop, so she chooses and finishes setting up in a couple of clicks. She then notices a small dialog box that explains how to use the extended desktop. She is delighted because she has twice the screen area as before at no extra cost and can work much faster than before.
Undocking The user removes her laptop from the docking station for an upcoming meeting. The computer detects the departure of the external display, and everything on her external display—including applications and the taskbar—is automatically moved back to the laptop display. She is reassured, knowing that her work has not been rendered inaccessible off screen.
Docking The user arrives back at her office after the presentation and docks her laptop. TMM automatically detects that the same external display has been reconnected and restores her previous display configuration. The user does not have to manually reconfigure her display settings, making it easier to move among different locations.
Using a Wired Conference Projector Another user arrives at his customer’s office to give a sales presentation. He connects the VGA cable to his laptop and his computer gives him the option to configure the projector. He can use the extended desktop function to project his Microsoft Excel® spreadsheet of sales figures on the large screen while simultaneously taking notes on his laptop and seeing them on his laptop monitor. After he finishes, he unplugs from the projector and his laptop automatically reverts back to its previous display configuration. Transient Multimon Manager (TMM) 6
Overview TMM requires the support of a Microsoft Windows Display Driver Model (WDDM) graphics driver. It runs in user mode and responds to the following set of notifications. Hot-plug detect (HPD) notification occurs when a user adds or removes a display from the system, when a laptop lid is closed or opened, when the laptop is docked or removed from a docking station, and in other situations when a display is turned on or off. Terminal Server (WM_WTSSESSION_CHANGE) occurs when a console unlock event is generated, such as when a fast user switch occurs. Windows provides this notification. Setting changes invoked by users in Windows (WM_DISPLAYCHANGE) occurs when a user changes display settings in the Windows environment, such as changing display settings through the display Control Panel (CPL) or by using keyboard function keys. To prevent hanging the operating system, TMM handles the work separately after it receives a message. In addition to detecting a change in display configurations, TMM also keeps a past history of attached displays and their associated settings. Combining this history information with the autodetection mentioned previously, TMM can extend Plug and Play ability to displays by intelligently configuring them based on the user’s actions. TMM maintains the history and settings on a per-user basis because different users likely have different preferences even for the same hardware. An example is a corporate shared computer—as each user logs on, his or her unique last settings are loaded. This alleviates the problem of users modifying settings globally and changing others’ profiles unintentionally. Upon the first two notifications, TMM re-enumerates all attached devices and detects any changes in an associated display. If a change has occurred, TMM either attempts to restore a previously stored configuration or sets up a new configuration. (For example, a new configuration is created when a user connects and disconnects a projector while she is giving a presentation.) Upon the third notification, TMM tracks the user’s setting change and updates its settings store; however, it does not interfere with the user’s actions. (This is applicable, for instance, when the user changes screen resolution through the display CPL.) TMM classifies all displays into two categories: Recognized display: A display that is uniquely identifiable and was previously attached to this computer under this current user. TMM uses extended display identification data (EDID) as the main unique identifier. Unrecognized display: A display that has not been previously attached to the computer. TMM’s behavior differs depending on a display’s category. For an unrecognized display, TMM shows users UI to configure it. For a recognized display, TMM restores its previous configuration with no UI, so the experience is smooth and nonintrusive to the user. To successfully enable the display, two tasks must be performed: 1. Compare the current monitor configuration with the last saved monitor configuration to determine if any changes have been made. 2. Identify the monitor that was plugged in so that TMM can either restore its settings or configure it for new use.
Detection Background
Because HPD notification is necessary to complete TMM’s end-to-end scenario, it is critical for Windows to detect the arrival and removal of display devices. WDDM can successfully detect the presence of digital or Digital Video Interface (DVI) monitors attached to graphics adapters. The DVI interface was designed to surpass the limitations of legacy VGA. Thus, detection of DVI monitors occurs reliably and does not suffer from the same limitations as the VGA connector. Transient Multimon Manager (TMM) 7
However, in the Windows Vista timeframe, the majority of displays in the market still have a VGA interface. This particularly applies to conference room projectors, a common scenario for mobile users that TMM attempts to address. The detection of VGA monitors has been a well-known problem due to lack of reliable techniques for load detection on the VGA connector and undesirable visual artifacts such as screen flashes or streaks.
To detect the presence of a VGA display device, given hardware limitations of the legacy VGA interface, TMM will use display data channel (DDC) polling as its main method of display arrival or removal detection. The TMM application periodically polls for a new display device connection event or an HPD event. The WDDM driver exercises the polling on the Inter-IC (I2C) bus through a DDC transaction.
Although the ultimate goal for TMM is auto-detection of arrival or removal for all displays, the DDC polling method works only for the subset of analog displays with EDID support. However, given the tradeoff of legacy interface versus usability, DDC polling provides marked improvement over the current behavior. Users also have the option to manually detect display changes through hotkeys or Windows UI if EDID polling did not detect a display arrival or removal.
Polling TMM polls only on VGA connectors. . TMM does not poll DVI connectors because they support interruptible HPD. . TMM does not poll TV outputs. TMM initiates two types of polling: . Nondestructive: This is the normal polling operation used in this method. Nondestructive polling does not result in visual artifacts and flashing of monitors. The specific implementation is the decision of the IHV. . Destructive: This is not periodic and is executed only if initiated by some user action, such as through a function key or some UI. Visual artifacts are permissible under this type of polling, which enables methods such as load sensing that are more accurate and also detects displays without EDIDs. TMM determines and optimizes the frequency of polling. In general, this will be no higher than 1 Hz, and TMM uses heuristics to lessen the polling frequency to reduce the performance hit.
The following outlines the major steps in DDC polling: 1. TMM notifies the WDDM driver to execute a poll. TMM dictates the polling type (destructive or nondestructive). 2. The WDDM driver device driver interface (DDI) queries each non-DVI and non-TV output. 3. The new display device is connected: If this new display device or monitor does not provide an EDID, then the driver cannot report the presence of a new monitor. The DDC polling approach fails in this situation. If this new display device or monitor provides a new EDID, then the driver retrieves the new block of EDID from the monitor over the I2C bus.
4. TMM receives user-mode notification of this HPD event, informing it about the arrival and presence of the new VGA monitor device. 5. TMM executes its logic to set up the display properly.
Display Identification and Configuration Storage VidList The monitor configurations are stored in a list (VidList) in most recently used (MRU) order. Each node in the VidList contains the: Transient Multimon Manager (TMM) 8
Time stamp. Number of monitors. Version number (in case future versions will change data structure). Video head state. The video head state provides information as to whether the video head is active. It is separate from the monitor data because there won’t necessarily be a 1:1 mapping between video heads and monitors. An example is when the user’s laptop is connected to a projector. If the user turns the projector video head on or off by using Fn+F5 (or some other keyboard shortcut), then the display state will have changed but the attached displays will not have changed. The common cases consist of users connecting or disconnecting one or two monitors at a limited number of locations. The number of VidList entries is fairly low in this case. For example, assume that the same number of monitors is used at all locations and one of the monitors is always plugged in (which is the case with laptops). In this case, the number of VidList entries is (m*2)(n-1) (m * 2 to the power of n-1) where m is the number of locations and n is the number of monitors. The most likely scenario is two locations and two monitors, which gives four VidList entries. The VidList is limited to 50 entries in MRU order. This provides enough storage for VidList growth and should satisfactorily handle most user scenarios. When the number of entries grows beyond 50, TMM deletes the oldest entry to make room for the newest one. To identify the specific attached displays, TMM uses the EDID data structure. EDID Data structure TMM uses a data structure to search on the combined manufacture code and product ID. The reason for searching on this combination is twofold: 1. An unrecognized monitor may be of the same make and model as a previously used monitor, so finding a monitor configuration is simply a matter of reusing the existent configuration of the already recognized monitor. 2. Monitors of the same make and model might not have unique monitor IDs due to corrupt EDIDs. This means that searching on monitor ID alone is not an effective strategy for identifying monitors. After this first pass, TMM then uses the EDIDs to identify the configuration.
TMM Sequence of Operations Figure 2 shows the overview of the TMM component. There are two entry points into the TMM component. The first entry point is when the TMM starts. The VidList is loaded at this point. The second entry point is when a fast user switch, console lock, console unlock, monitor plug, or monitor unplug event occurs. In either case, TMM determines and tests a new monitor configuration and updates the VidList. Transient Multimon Manager (TMM) 9
WM_CREATE
Load VidList
Fast User Switch or Monitor Get monitor configuration Plug/Unplug Event
Identify monitor configuration Create data structure
No – structure doesn’t exist Did search succeed? No – Unrecognized monitor(s)
Does data structure exist? (first time only ) Yes – Only recognized Yes – double map monitor(s) was used
Find monitor Find monitor configuration configuration
Monitor configuration tested
Update VidList
Launch UI for configuring new display
Finish
Figure 2: Overview of the TMM component for establishing monitor configurations Transient Multimon Manager (TMM) 10
TMM will acquire the EDID information and then search to see if the monitors have been recognized, loading the data structures if it has not been loaded before this point. After the monitor configuration is determined and tested, TMM updates the VidList. If the attached monitor was part of a multimonitor configuration, TMM activates the monitor. TMM first attempts to set its preferred mode and, if that fails, iteratively downgrades the video settings until it finds a suitable one. For specific user interaction and display setting details, see the "User Interaction" section. A monitor cannot be recognized in two situations. One is that TMM has not seen the manufacture code and product identifier. In this case, the monitor has never been connected to the computer before and TMM launches UI to configure this new display. The other is that the monitor does not provide the manufacture code and product identifier (the combination equals zero). In this case, the monitor is probably an old monitor without EDID information or is a monitor with a malformed EDID. The data structure groups identical EDIDs together in the VidList and sorts them in MRU order. When encountering a malformed-EDID or null-EDID display, TMM uses the MRU setting as described in "User Interaction." In summary, 1. On monitor connect or disconnect, TMM receives a notification. 2. TMM queries for the display’s EDID. If no EDID is available, then TMM treats this as a completely new display and proceeds to step 6. 3. TMM identifies and compares the current display configuration with those stored in its data structures to see if this configuration has appeared before. If this is an old configuration, TMM skips to step 7 to restore the previously used display configurations. If restoration fails, then TMM returns to step 6 to enumerate again. If this is a new configuration: But a display of this make and model has been used before. TMM uses the same settings applied to this type of display before. TMM shows the appropriate UI (new display detected) and prompts the user to configure the new display. Based on the user’s input, TMM proceeds to step 6. 4. TMM determines the available modes to be set on each display. TMM enumerates the available modes and obtains a set of pruned video modes supported by both the display and the graphics adapter. TMM always invokes mode pruning to remove unsupportable modes. TMM attempts to set the new display to its preferred mode as reported by EDID if this is a valid mode that has passed through pruning. If the mode setting fails, TMM iterates until it finds an acceptable mode. 5. After TMM determines which mode to use, it then sets the new mode.
Persistence TMM persists only the settings in the following table.
Persisted settings Monitor ID EDID Video State Resolution Refresh rate Color depth Orientation Topology (views-to-monitors mapping) Placement of displays (x-y coordinates) relative to each other Transient Multimon Manager (TMM) 11
TMM Logo Requirements
Standard Logo Requirements Note These are the TMM support requirements for the Standard Microsoft Windows Vista Logo Program for Hardware. 1. The graphics hardware and driver must support the different polling types referenced in the "Polling" section earlier. Microsoft does not stipulate the specific implementation, only that it follows these requirements. Nondestructive polling: Uses DDC and cannot generate undesirable visual artifacts. Destructive polling: Visual artifacts permissible only upon user-initiated actions. Can be generated through analog load-sensing or any other proprietary technique. 2. The graphics driver must support the Windows interface that exposes mirror desktop functionality to Windows. (For more details, contact your Microsoft representative to obtain the Clone-mode Control white paper from the Windows BaseVideo team.) 3. Microsoft recommends function keys to change display modes to be standardized to Fn+F5. The goal is to enable Fn+F5 to trigger TMM to handle the display mode change. 4. The graphics hardware and software must not prevent Windows from changing display settings. For example, when the user initiates a mirrored desktop by using keyboard shortcuts, Windows must be able to programmatically change display out of mirrored and into extended desktop. Users cannot reset this with certain graphics systems today, leaving them in an undesirable state that they cannot exit. Thus, it is a problem we want to resolve for Windows Vista.
Premium Logo Requirements Note This is a TMM support requirement for the Premium Microsoft Windows Vista Logo Program for Hardware. Microsoft encourages OEMs and IHVs to implement hardware solutions that address the analog HPD problem reliably without visual artifacts. Implementing this solution will satisfy one of the requirements of the Premium logo program.
User Interaction Note All designs are still work in progress and subject to change.
Detailed Description If TMM can uniquely identify a monitor by using EDID, then TMM can determine whether the monitor has been attached before. These are referred to as recognizable displays. 1. If TMM recognizes this monitor, then TMM restores its previous settings. TMM presents no UI to the user. Instead, the user just sees the previous settings automatically restored— “It just works!” 2. If TMM does not recognize this monitor—as in the case with a new monitor—then: If two or more displays are already attached, TMM: Will not take any actions, but will invoke the display CPL and prompt the user for manual configuration. TMM ends after invoking the display CPL. TMM stores this configuration that the user has manually created, however. If this is the second monitor attached, then TMM mirrors the desktop by default: TMM attempts to set best-fit video settings for the attached display. Transient Multimon Manager (TMM) 12
If TMM cannot autoconfigure settings, it undoes any changes. TMM then displays a dialog box that says, “TMM could not determine a suitable configuration for this display. Please use the display CPL.” and shows the display CPL for manual configuration. TMM shows the New Display Detected dialog box (Figure 8a) with the following options: All displays show the same image (mirrored) option button (selected by default). The Right and Left buttons to the side of the A different section of your desktop is shown on each display (extended) option button are not shown. The IHV determines the mirroring resolution. The A different section of your desktop is shown on each display (extended) option button: TMM does not modify the existing display’s resolution. If the user selects this option, additional configuration options are shown (Figure 8b). The changes are not applied until the user clicks OK. Options are as follows: Right Extends the new desktop to the right of the current display. Selected by default when the user selects the A different section of your desktop is shown on each display (extended) option button. If a user clicks any part of the explanatory text next to this option, Right is also selected by default. Left: Extends the new desktop to the left of the present display. Link to launch the Display settings in Control Panel to customize settings for advanced users: The display CPL opens to the Settings tab. The TMM dialog box closes when the user launches the display CPL. Configuration algorithm: TMM attempts to set best-fit video settings for the attached display. If TMM cannot autoconfigure settings, it undoes any changes. TMM then displays a dialog box that says, “TMM could not determine a suitable configuration for this display. Please use the display CPL.” and displays the display CPL for manual configuration. The Desktop shows only on the external display option button. o TMM turns on only the external output, and the entire desktop is shown. o This option is shown only on mobile PCs because it does not have much utility for desktop multimon scenarios. If the user clicks Cancel: The New Display Detected dialog box (Figures 8a and 8b) closes. The display remains in the mirrored configuration. If the user changes the option buttons and then clicks Cancel, TMM still dismisses the dialog box (because no changes have been applied yet). If the user clicks OK: TMM applies the changes the user made, if any. If the user made no changes, TMM simply dismisses the New Display Detected dialog box (Figures 8a and 8b). If the display has a malformed EDID so that TMM is uncertain whether its configuration will work safely, TMM displays the Keep these display settings? dialog box (Figure 9). TMM displays this dialog box (Figure 9) only the first time the malformed EDID display is connected. This dialog box asks users whether they want to keep these settings. The default choice is Cancel, and users have 15 seconds to make a decision. When the dialog box times out, the user clicks Cancel, the user closes the window, or the user presses ESC, TMM turns off the secondary video head, essentially blanking the second display. TMM also launches the display CPL side by side with a Help menu. At the time of this paper, the Help menu is being developed by the Mobile PC User Assistance team. When extended desktop is enabled and setup is complete, TMM displays a short educational dialog box, How to use extended desktop (Figure 10). The How to use extended desktop dialog box includes a Don't show this message again check box that allows users can select so that TMM does not display this dialog box again. Transient Multimon Manager (TMM) 13
TMM does not display the How to use extended desktop dialog box if the user configured the displays by using the display CPL. Upon exit, TMM stores the current video configuration if it has not already been stored so that it can be restored next time. 3. If TMM cannot identify this display, then it cannot tell whether it has seen this display. These are unrecognizable displays. For unrecognizable displays: TMM restores the last known video settings for an unrecognizable display. If there are no last known video settings, TMM, by default, shows the TMM setup dialog box and the behavior follows section 2. If a last known video setting exists, the Keep these display settings? dialog box appears every time a null-EDID display is connected (Figure 9). This Keep these display settings? dialog box notifies users that TMM could not identify the display and has thus resorted to applying the last known settings. There is no danger of physically damaging the display. The Windows Vista graphics device interface (GDI) libraries prevent TMM from implementing a setting that can damage a monitor. The confirmation dialog box asks the user if he or she wants to keep these settings. The default choice is Cancel, and users have 15 seconds to make a decision. When the dialog box times out, the user clicks Cancel, the user closes the window, or the user presses ESC, TMM turns off the secondary video head, essentially blanking the second display. TMM also launches the display CPL side by side with a Help menu. At the time of this paper, the Help menu is being developed by the Mobile PC User Assistance team. If the user clicks OK, TMM keeps these settings and closes the dialog box. Transient Multimon Manager (TMM) 14
UI Flowchart
Start Monitor connected
Can we identify Yes No this display? Have we seen No this display? Fig. 8a - Windows Yes detects monitor and auto- configures to mirrored Fig. 9 Restore last unknwon setting. Show safety dialog with 15 sec countdown Extende d vs. Mirrored Restore settings Custom automatically. ‘Cancel’ or times out No UI is shown
Extended left/right
Undo settings Show Fig. 10 Mirrored Show Display Display CPL Extended CPL side-by-side to allow desktop with Help Menu manual education to allow manual configuration dialog. Show configuration. . until user turns it off
‘OK’ (No change)
Finish TMM continues to monitor changes in the background
Figure 4. Flowchart of TMM behavior Transient Multimon Manager (TMM) 15
TMM State Diagrams
Unrecognized (New) Displays
Educational UI O K Unplug Monitor 1 or 2 (Edu UI dismissed)
2 Monitors Unplug Monitor 1 or 2 (Pres Mode Off) Mirrored NoPres / Cancel
Mirrored Plug Unrecog Monitor 2 1 Monitor Plug Unrecog TMM Dialog Attached Monitor 3 Unplug Monitor 2 (TMM Dialog Unplug Monitor 1, 2, or 3 Dismissed) Plug Unplug Click Plug Unrecog Unrecog Monitor 1 Display Link Monitor 3 Monitor Unplug Monitor 1 or 2
3 Monitors No Monitor (Show Display Display CPL CPL) Attached
Notes: Actively Ignore List Legend - In this diagram, all monitors are always unrecognized >3 displays NoPres – Presentation Mode (new) Recognized displays unchecked - TMM Dialog is always dismissed when the Display Monitor Plug/Unplug at following states: Pres – Presentation Mode checked CPL is showing - Welcome screen Recog – Recognized display - Whenever the Display CPL appears, a Help dialog - Security desktop Unrecog – Unrecognized/New display appears at the same time - Fast S4 - Off Actions that can happen at any time - plug unrecognized display - plug recognized display - unplug display
Figure 5. TMM state diagram for unrecognized (new) displays. Transient Multimon Manager (TMM) 16
Recognized (Old) Displays
Display CPL 3 Monitors
Plug Unrecog Monitor 3
Plug Recog Monitor 2 Unplug Monitor
2 Monitors, 1 Monitor Config Rest., Plug Recog Unplug Monitor Monitor 3
Plug Recog Unplug Unplug Monitor Monitor 1 Monitor 3 Monitors
No Monitor Attached
Notes: Actively Ignore List Legend >3 displays Recog – Recognized display - Whenever the Display CPL appears, a Help dialog Extended to left vs. right Unrecog – Unrecognized/New appears at the same time Monitor Plug/Unplug at following states: display - Additional transitions (listed below) are possible from - Welcome screen the ‘2 Monitors’ and ‘3 Monitors’ states, but these are - Security desktop being ignored to simplify the model - Fast S4 - Off Actions that can happen at any time - plug unrecognized display - plug recognized display - unplug display
Figure 6. State diagram for recognized (old) displays Transient Multimon Manager (TMM) 17
Unrecognizable (EDID- less) Displays
Config Restored Yes 3 Displays; 3 Displays; Config Safety Dialog Restored #2 No or Timeout elapsed Display CPL Plug Display 3 Plug Display 3 3 Displays Recog Recog (Recognizable) (Unrecognizable) (1s t Safety dialog dismissed )
Plug Unrecognizable No or Display 2 Timeout (Not 1s t time; OK Config Restored ) elapsed Safety Display CPL (unchanged 1 Monitor 2 Displays Dialog #1 2 Displays settings) Unplug Display OK (Safety Dismissed) or Cancel (Changed Settings)
Plug Yes Plug Display 3 Unrecognizable TMM Dialog Complete Unrecog (recognizable) Display 2 (Only 1 Safety dialog is shown ) (1s t Time Only)
TMM Dialog Display CPL (Use New Displays Model here) 3 Displays
Notes: Actively Ignore List Legend - Whenever the Display CPL appears, a Help dialog >3 displays Recog – Recognized display appears at the same time Extended to left vs. right Unrecog – Unrecognized/New - Additional transitions (listed below) are possible from User display the ‘2 Monitors’ and ‘3 Monitors’ states, but these are Monitor Plug/Unplug at following states: being ignored to simplify the model - Welcome screen - Security desktop Actions that can happen at any time - Fast S4 - plug unrecognized display - Off - plug recognized display - unplug display
Figure 7. State diagram for unrecognizable (EDID-less) displays Transient Multimon Manager (TMM) 18
Draft UI Designs
Figure 8a. New display arrival dialog. This is the main user interface to set up TMM.
Figure 8b. New display arrival dialog when Extended desktop is selected. Transient Multimon Manager (TMM) 19
Figure 9. Safety confirmation dialog box for a display with a bad EDID. TMM displays this dialog box only on first encounter. After 15 seconds, the default selection is Cancel. Transient Multimon Manager (TMM) 20
Figure 10. Educational dialog box about using extended desktop. This dialog box informs users how to use multiple monitors. TMM displays the dialog box upon first encountering a display.
Supplementation Information
Limitations TMM does not support or persist any settings that are not specifically outlined in the "Persistence" section. Specifically, TMM does not support: Spanning mode—one single desktop that spans across multiple displays, not to be confused with extended desktop. View rotation, stretching, or scaling. Gamma settings. Any pre-logon change in display state because TMM launches only on user logon.
Extensibility TMM does not prevent IHVs from using keyboard shortcuts (hotkeys) to invoke mode changes. In the case of a hotkey invocation, TMM is a passive listener that tracks the changes and does not interfere with the change itself. Windows allows third-party display-handling software to run as long as it doesn’t interfere with TMM. Microsoft strongly encourages third parties to leverage the Mobility Settings framework instead of installing custom UI or applets for extending display-handling functionalities. The Mobility Settings framework provides superior user experience and higher visibility, and could lower implementation cost of extending functionalities. As a supplemental option, third parties can also enhance the display CPL’s Advanced tab, though Mobility Settings is the preferred method.
Edge Cases Because TMM must account for all possible permutations of display configurations, this paper cannot describe TMM’s behavior in every possible scenario. By understanding the inner logic and algorithms of TMM, you should be able to infer TMM’s behavior given the scenario. Nevertheless, here are some of the common scenarios and TMM’s associated behavior. More than two displays: If more than two displays are connected and the user selects the extended configuration, TMM does not show the dialog box in Figure 8a. Instead, TMM directs the users to the display CPL for manual configuration. Because there are too many permutations for TMM to autoconfigure intelligently, users who opt for three or more displays are likely advanced users who want to customize their own settings. Docking with laptop lid closed: The user closing the laptop lid should trigger an HPD event (removal of the laptop display). Docking should trigger another (addition of the external display). This should not present a problem because TMM simply moves the primary desktop to the external display while the laptop is still closed. If the user opens the lid after docking, it is as if a second display was added to the system. As of the writing of this paper, the behavior is that TMM transfers the desktop back to the laptop display and shows the setup UI. Plugging in a display while in Microsoft MS-DOS® full-screen mode: MS-DOS full-screen mode is deprecated in Windows Vista, so this scenario is no longer applicable. Unplugging a new display in the middle of setup (before finishing interaction with the TMM dialog box): TMM dismisses the TMM setup UI (Figure 8), which it displayed because of the user plugged in the second display. TMM then restores the previous settings in the single-monitor configuration Transient Multimon Manager (TMM) 21
—just like restoring any other previous configurations—and displays a notification bubble to the user that settings have been restored. Plugging in other displays in the middle of setting up a second display: TMM has already extended the desktop onto the second display, and the setup UI (Figure 8) appears on the primary display. When the user plugs in a third display, TMM dismisses the UI, but the desktop on the second display is not unextended. TMM then opens the display CPL for the user to manually configure, for reasons similar to those stated in "More than two displays." Plugging in only one display: TMM autoconfigures the new display by first attempting to set it to its preferred mode, if available. If unavailable, then TMM iterates until it finds the highest acceptable video mode. However, TMM does not show the setup UI (Figure 8) or the associated interactions because they do not apply. TMM stores and persists the configuration in the VidList just like any other configuration.
Frequently Asked Questions 1. Will display profile handling be maintained on a per-user or per-device configuration basis? TMM handles display configurations on a per-user basis. It is therefore possible for different users to have different profiles for the same display setup.
2. What events trigger TMM? a. Changes in the display (WM_DISPLAYCHANGE). b. Monitor plug or unplug notifications (WM_DEVICECHANGE). c. Fast user switches (WM_WTSSESSION_CHANGE).
3. Does TMM provide any public APIs? There are no current plans for TMM to expose any public APIs.
4. Is it possible to extend TMM’s UI with IHV controls? It is not possible for third parties to modify TMM’s behavior or UI. However, it is possible for third parties to extend functionality and support feature sets not covered by TMM. Third parties can do this by extending the display CPL's Advanced tab or by installing their own applets.
5. Is replacement or override of behavior possible by ISV/IHV code for yet unknown scenarios? No, TMM does not allow any ISV/IHV code to replace or override its functionality.
6. Will there be a way for the graphics card to force TMM to re-enumerate? This behavior is discouraged, but if it is necessary, contact the Microsoft BaseVideo team.
7. Will TMM support [setting X]? TMM only records and changes those settings that the ChangeDisplaySettingsEx() function can affect. For example, TMM does not affect these values: center, expand maintaining aspect ratio, expand to full panel size on LCD panels, and digital displays.
8. What TV support does TMM offer? TMM can support any TVs that are enumerated by BaseVideo. However, it will treat it as a VGA/DVI- equivalent display and will not be able to support PAL/NTSC, underscan/overscan, component video, and any other TV-specific inputs or settings.
9. Will TMM distinguish between temporary mode changes (Screen Saver, Microsoft Direct3D®, OpenGL, etc.) instead of permanent, device-specific mode changes? Yes, TMM saves only permanent mode changes.
10. How does TMM handle function key invocations of display changes (what users currently do today)? Transient Multimon Manager (TMM) 22
When user changes display settings by using function keys, TMM receives a WM_DISPLAYCHANGE notification at the end, and it tracks it passively like any other manual display change.
11. How does TMM handle device change in a full-screen game application? If possible, TMM forces the game or application to exit full-screen mode so that TMM can set up the new display and show its UI. If not, TMM takes no action until the user’s application exits full-screen mode.
Glossary
EDID (extended display identification data) Information that monitors provide to Windows. EDID provides information about the monitor, including its recommended resolution, refresh rate, and physical screen size (for more information, see http://www.vesa.org/summary/sumedid3.htm). extended mode The typical multiple-monitor configuration, in which the Windows desktop extends across multiple displays. mirrored mode The configuration in which the output from the primary laptop screen is duplicated across both displays. This is the current mode that most people use for presentations. Mirrored mode is sometimes called cloned mode. preferred mode An EDID preferred mode bit, which can be used to automatically set the display resolution to the native display mode for the attached panel. video state Sometimes referred to only as state, the resolution, refresh rate, color depth, orientation, and video head state [on, off] of the monitor.
Contact / Feedback
To obtain more information or provide feedback on the TMM feature, work with your Microsoft representative or contact Microsoft at [email protected].