Supporting Graphics Output
The particular graphics operations that a driver handles depend upon the drawing surface and the capabilities of the hardware. If the surface is a standard-format DIB, GDI will handle all rendering operations not supported by the driver. The driver can hook out any of the drawing functions and implement them to take advantage of hardware support.
For a device-managed surface, a driver must, at a minimum, support the graphics output functions DrvCopyBits, DrvTextOut, and DrvStrokePath. It can optionally support any of the other graphics output functions. Supporting DrvBitBlt, for example, can enhance performance. Some functions require a certain level of capability while others allow the device to indicate its capability by setting the appropriate GCAPS flags in the DEVINFO structure.
All drawing calls to the driver are always single threaded, regardless of the surface type.
The topics that follow describe how a driver can implement the following operations: