BIOS Communication for Display Drivers in Windows Vista

BIOS Communication for Display
Drivers in Windows Vista
May 4, 2006
Abstract
This white paper provides detailed information about the required ACPI and display
driver capabilities to support communication between the BIOS and graphics
hardware on systems running the Microsoft® Windows Vista™ operating system.
The current version of this paper is maintained on the Web at:
http://go.microsoft.com/fwlink/?LinkId=50987
References and resources discussed here are listed at the end of this paper.
Contents
Introduction ............................................................................................................................. 2
ACPI Methods for Display and BIOS Communications ........................................................... 2
ACPI Notifications .............................................................................................................. 3
ACPI Method Evaluations .................................................................................................. 3
BIOS Support ..................................................................................................................... 3
Using ACPI Methods: Examples ............................................................................................. 4
Summary................................................................................................................................. 4
Resources ............................................................................................................................... 5
Disclaimer
This is a preliminary document and may be changed substantially prior to final commercial release of the
software described herein.
The information contained in this document represents the current view of Microsoft Corporation on the
issues discussed as of the date of publication. Because Microsoft must respond to changing market
conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot
guarantee the accuracy of any information presented after the date of publication.
This White Paper is for informational purposes only. MICROSOFT MAKES NO WARRANTIES,
EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS DOCUMENT.
Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights
under copyright, no part of this document may be reproduced, stored in or introduced into a retrieval
system, or transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or
otherwise), or for any purpose, without the express written permission of Microsoft Corporation.
Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property
rights covering subject matter in this document. Except as expressly provided in any written license
agreement from Microsoft, the furnishing of this document does not give you any license to these
patents, trademarks, copyrights, or other intellectual property.
Unless otherwise noted, the example companies, organizations, products, domain names, e-mail
addresses, logos, people, places and events depicted herein are fictitious, and no association with any
real company, organization, product, domain name, email address, logo, person, place or event is
intended or should be inferred.
© 2006 Microsoft Corporation. All rights reserved.
Microsoft, Windows, and Windows Vista are either registered trademarks or trademarks of Microsoft
Corporation in the United States and/or other countries.
The names of actual companies and products mentioned herein may be the trademarks of their
respective owners.
BIOS Communication for Display Drivers in Windows Vista - 2
Introduction
Display drivers often communicate with the system BIOS to provide advanced
functionality that might depend on machine-specific or OEM-specific system BIOS
implementations. Display driver and system BIOS dependencies are especially
common in mobile platforms, where each manufacturer might differentiate the
platform and provide value-add software and capabilities.
Historically, display drivers without direct control of the hardware used legacy
methods to communicate with the system BIOS, usually to enable mobile PC
platform features such as:

Power management

Brightness control

Hotkey clone mode (for connecting a laptop to a projector)

Retrieval of monitor EDIDs (extended display identification data, a data block
that contains monitor identification and capability information)
One commonly-used legacy method is the Int10 mechanism, which exercises 16-bit
code in real mode. Unfortunately, legacy methods such as Int10 can cause system
stability problems that are difficult to debug and fix. These stability problems
manifest themselves to end users as a system that will not boot or a system that
hangs unexpectedly. Fixing a problem caused by incorrect use of legacy BIOS
communication mechanisms often requires a BIOS update or Windows ® software
patch.
Int10 communications are supported in the Windows XP display driver model
(XDDM) and earlier versions of the Windows display driver model support.
However, to avoid the stability problems caused by legacy BIOS communication
methods, the Windows Vista display driver model (WDDM) does not support Int10
communications. It does not pass the Int10 interrupt message to the system BIOS,
thus disabling any functionality that depends on Int10 communications.
The WDDM is a significant evolution of the graphics driver infrastructure and is not
backward compatible with XDDM drivers and previous versions of Windows. As an
alternative to Int10 communications, the WDDM provides display drivers with full
access to ACPI methods for the graphics adapter. ACPI (Advanced Configuration
and Power Interface) is an industry specification that describes platform
configuration and power management interfaces between the system BIOS and the
operating system. In situations where it is necessary to use the system BIOS to
control the hardware, a display driver can use the ACPI methods for the device.
This paper describes the ACPI methods that can be used instead of Int10 to enable
communication between the display driver and the system BIOS.
ACPI Methods for Display and BIOS Communications
The WDDM enables display drivers to directly interact with the device and its
children through ACPI methods and notifications. To take full advantage of the
ACPI video device methods, it might be necessary to modify both the display driver
and the system BIOS.
Note: In this document, any use of the term “video” refers to the graphics adapter.
August 3, 2005
© 2005 Microsoft Corporation. All rights reserved.
BIOS Communication for Display Drivers in Windows Vista - 3
ACPI Notifications
A WDDM driver receives all ACPI notification events for the graphics adapter.
Example ACPI notification events include:

Cycle Output Device
Notifies the display driver that the state of one of the output devices attached to
the VGA controller has been switched or toggled.

Cycle Display Output Hotkey Pressed
Notifies the display driver that the user has pressed the Cycle Display hotkey.
The notification is passed directly to the WDDM driver through the
DxgkDdiNotifyAcpiEvent display miniport driver function, which the display port
driver calls to notify a display miniport driver about certain ACPI events. This differs
from XDDM drivers, in which the graphics subsystem interprets the ACPI
notification and delivers an IOCTL to the display driver.
System ACPI notifications such as lid status change or docking event are also sent
to the WDDM driver using the DxgkDdiNotifyAcpiEvent function.
For information about the DxgkDdiNotifyAcpiEvent function, see the Windows
Driver Kit (WDK) documentation.
ACPI Method Evaluations
WDDM drivers can execute any ACPI method on the graphics adapter or any of its
children by calling the DxgkCbEvalAcpiMethod function of the Windows Vista
graphics kernel subsystem. A display miniport driver calls
DxgkCbEvalAcpiMethod to evaluate a specified ACPI method on a graphics
adapter or on its child device.
For example, to retrieve the EDID from a child output device, the WDDM driver can
evaluate the _DDC ACPI method on that device.
For information about the DxgkCbEvalAcpiMethod function, see the WDK
documentation.
BIOS Support
The system BIOS must support all required ACPI methods for the WDDM driver to
be able to communicate with the system BIOS.
Many mobile PC graphics adapters are tightly integrated with the host platform and
system BIOS. Therefore, graphics hardware vendors should work closely with the
system manufacturer and BIOS developer for the host platform to ensure that the
required ACPI methods are implemented in the system BIOS.
The BIOS must implement the following ACPI methods, as applicable for specific
functionality:
_ADR: Device ID
_BCL: Query for brightness levels
_BCM: Set brightness level
_DCS: Query display status
_DDC: EDID
_DOD: Enumeration of graphics adapter child devices
_DOS: To control BIOS response to hotkeys
August 3, 2005
© 2005 Microsoft Corporation. All rights reserved.
BIOS Communication for Display Drivers in Windows Vista - 4
_DSS: Set display state
_PS methods for supported power states
For information about these methods, see Appendix B, “Video Extensions,” of the
ACPI Specification (listed in the references at the end of this paper).
Using ACPI Methods: Examples
These examples show how the ACPI methods for functionality that might have been
implemented previously using the Int10 communication mechanism.
Display Switching Example
On a mobile platform with an integrated panel in which the system BIOS
controls signal switching and backlight power, the BIOS must support the _DSS
method so that the WDDM driver can control the display state.
When the _DSS method is evaluated, it must update the system BIOS internal
state, perform any signal switching required to route the signal, and set the
backlight into the correct state. The _DSS method must be able to set the output
state without a hotkey being pressed.
The _DOD method can be used to enumerate the child devices of the VGA
controller.
Hotkey Clone Mode Example
For a driver to be able to retrieve the hardware status of each child device of
the graphics adapter, the BIOS must support the _DCS ACPI method so the
WDDM driver can control the hotkeys.
If it is necessary to set a child output state, the _DSS method must be used to
set that state.
EDID Retrieval Example
The BIOS must support the _DDC ACPI method to enable the WDDM driver to
retrieve the EDID of an output device.
Brightness Control Example
The BIOS must implement the _BCL and _BCM methods to support brightness
control of the display control panel, so that the monitor driver supplied with
Windows Vista can directly control brightness levels.
Summary
System manufacturers:
 Ensure that the system BIOS is ACPI compliant and implements the ACPI
methods required for a WDDM driver.

Work with Microsoft and graphics vendors to ensure compatibility with Windows
Vista and the WDDM:

Enroll in the Windows Vista beta program to receive access to Windows
Vista beta releases. Use only Windows Vista beta releases obtained from
Microsoft through the beta program.

Get WDDM drivers directly from the graphics vendor. (Microsoft is unable to
re-distribute beta WDDM drivers to manufacturers.) Ensure that the beta
WDDM driver from the graphics vendor is compatible with the Windows
Vista beta release obtained from Microsoft.
August 3, 2005
© 2005 Microsoft Corporation. All rights reserved.
BIOS Communication for Display Drivers in Windows Vista - 5

Identify system functionality that depends on legacy BIOS communications
(Int10) support, and implement the necessary ACPI interfaces in the system
BIOS to enable this functionality for use by a WDDM driver.

Work with graphics vendors to ensure the required ACPI interfaces are
implemented in the system BIOS to support the WDDM driver.

Validate that the system BIOS functions correctly with a WDDM driver that
uses ACPI interfaces, especially for mobile platforms.
Graphics hardware vendors:
Design your WDDM drivers to use ACPI methods instead of Int10 to
communicate with the system BIOS.
BIOS vendors:
Design your BIOS products to be ACPI compliant and to implement the ACPI
methods required for a WDDM driver.
System builders:
Build systems with an ACPI-compliant BIOS that implements the ACPI methods
required for a WDDM driver.
Resources
If you have additional questions that are not addressed by this document, please
send email to [email protected].
ACPI/Power Management – Architecture and Driver Support
http://www.microsoft.com/whdc/system/pnppwr/powermgmt/default.mspx
ACPI Specification
http://www.acpi.info
August 3, 2005
© 2005 Microsoft Corporation. All rights reserved.