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.