## Presentation Device Driver Reference for OS/2

[prev][next][parent][TOC]

### OS2_PM_DRV_ENABLE: Subfunction 01h - FillLogicalDeviceBlock - Remarks

This subfunction is not called when the same application or process opens additional device contexts with the same presentation driver. However, the graphics engine can call this subfunction at other times and the call should always be honored. If the value of pDispatchTable is nonzero, the handling routine must initialize the dispatch table.

The major tasks that the handling routine must implement are:

1.Add an entry to the DosExitList to ensure that any allocated resources are freed when the owning application or process terminates.

2.Save those pointers in the dispatch table that are needed to pass hooked functions back to the graphics engine. A typical example is GreCharString, which must be hooked by the presentation driver, but can be passed back to the default handling routine.

3.Initialize the dispatch table. That is, modify the table so that the entries for functions hooked by the presentation driver contain pointers to the driver's handling routines.

4.Set flags to indicate how future DevOpenDC calls to this device should be handled.

In some typical presentation drivers, the handling routine for FillLogicalDeviceBlock allocates global heap space for use by the device contexts. The memory for this heap space is obtained by calling the SSAllocMem function. This global heap space is available to all instances of a device context that are opened by the application or process for which the presentation driver was enabled.