DDI Functions

All display drivers must implement DDI functions. However, only DrvEnableDriver must be exported from the display driver's DLL, which means that only DrvEnableDriver can use this exact name. If your display driver must use the PCI information in the registry, as populated by the PCI bus driver, it needs to implement and export DisplayInit. You can customize the names for the other functions because they are exposed to the GDI through function pointers that are returned by DrvEnableDriver. Regardless of name, all functions must follow the prototypes in the Winddi.h header file.

The following table shows the DDI functions that display drivers must include.

Function Description
DisplayInit Passes instance information, which allows the driver to find PCI configuration information for its device. The PCI bus driver populates the information if the driver has a PCI template in the platform registry. This is the first display driver function called by GWES.
DrvAnyBlt Performs bit block transfers, with stretching or transparency.
DrvBitBlt Performs general bit block transfers, with clipping and masking.

Maps to the MoveToEx, Polygon, Polyline, Ellipse, Rectangle, PolyBezier, SetPixel, BitBlt, MaskBlt, Rectangle, ExtTextOut, DrawText, and ExtTextOut GDI functions.

DrvCopyBits Sends a GDI-created print band to a printer driver.

Maps to the SetDIBitsToDevice GDI function.

DrvCreateDeviceBitmap Creates and manages bitmap files.
DrvDeleteDeviceBitmap Deletes a device bitmap file.
DrvDisableDriver Notifies the display driver that the GDI no longer needs it and is ready to unload the driver.
DrvDisablePDEV Notifies the driver that the GDI no longer needs a particular display device.
DrvDisableSurface Notifies the driver that the GDI no longer needs a particular drawing surface.
DrvEnableDriver Returns pointers to DDI functions to GDI. The initial entry point that is exposed by the driver. The driver exposes the second entry point if DisplayInit is implemented.
DrvEnablePDEV Returns a PDEV structure to the GDI. A PDEV structure is a logical representation of a physical display device.
DrvEnableSurface Creates a drawing surface and associates it with PDEV.
DrvEndDoc Sends any control information that is needed to finish printing a document.
DrvEscape Retrieves information from a device that is not available in a device-independent DDI. This function operates the same as with Windows NT, except that Windows CE does not support the DrvDrawEscape function.
DrvFillPath Fills a drawing path with a brush.

Maps to the MoveToEx, Polygon, Polyline, Ellipse, Rectangle, and PolyBezier GDI functions.

DrvGetMasks Gets the color masks for the display device's current mode.
DrvGetModes Lists the display modes that are supported by the display device.
DrvMovePointer Moves the pointer with a guarantee that the GDI will not interfere with the operation.
DrvPaint Paints a specified region with a brush.

Maps to the MoveToEx, Polygon, Polyline, Ellipse, Rectangle, and PolyBezier GDI functions.

DrvPowerHandler Called to handle POWER_UP and POWER_DOWN notifications.
DrvRealizeBrush Creates a brush with parameters that are specified by the GDI.
DrvRealizeColor Maps an RGB color onto the closest available color that is supported by the device.
DrvSetPalette Sets the display device's palette.
DrvSetPointerShape Sets the pointer to a new shape and updates the display.
DrvStartDoc Sends any control information that is needed to start printing a document.
DrvStartPage Sends any control information that is needed to start printing a new page.
DrvStrokePath Renders a drawing path.

Maps to the MoveToEx, Polygon, Polyline, Ellipse, Rectangle, and PolyBezier GDI functions.

DrvStrokeAndFillPath Maps to the MoveToEx, Polygon, Polyline, Ellipse, Rectangle, and PolyBezier GDI functions.
DrvTransparentBlt Bit block transfer, with transparency.
DrvUnrealizeColor Maps a color in the display device's format onto an RGB value.

See Also

Display Drivers | Display Driver Extensions | Display Driver Samples | Primary Display Drivers | Secondary Display Drivers | BitBlT Emulation Library Functions | GPE Base Classes | GDI Support Services | Display Buffer Formats | Line Drawing | Display Driver Escape Codes | Display Drivers and the OS Image

 Last updated on Tuesday, May 18, 2004

© 1992-2003 Microsoft Corporation. All rights reserved.