PDRREF:Exported Driver Function Reference

This chapter describes the entry points that are exported by the dynamic link library of a presentation driver: EXPORTS OS2_PM_DRV_RING_LEVELS     /* All drivers - Optional  */ OS2_PM_DRV_ENABLE_LEVELS   /* All drivers - Optional  */ OS2_PM_DRV_ENABLE          /* All drivers - Mandatory */ The functions in this chapter are listed in the following index table. A detailed description of each function follows the table.

Enable Levels (OS2_PM_DRV_ENABLE_LEVELS)
This entry point is the address of a table of ring levels required when calling each of the Enable subfunctions. The table is an array of bytes corresponding to the subfunction numbers, terminating with a byte of 0 (that is, an ASCIIZ string). The most significant six bits of each byte are reserved and must be 0. The remaining two bits of each byte represent the ring level to be used when dispatching the corresponding function in the dispatch table. 00 = End of Table        10 = Ring 2 01 = Ring-2-Conforming   11 = Ring 3 Any subfunction that does not have a corresponding byte in the table will be dispatched as Ring-2-conforming. This is the most desirable case from the standpoint of system performance. The following example of six bytes would declare FillPhysicalDeviceBlock as Ring 3, DisablePhysicalDeviceBlock as Ring 2, and all other subfunctions as Ring-2-conforming: 0x01   0x01    0x03    0x01    0x02    0x00 If the address of this table is not exported, all subfunctions will be called as Ring-2-conforming as if the table had contained the single byte 0x00.

Ring Levels (OS2_PM_DRV_RING_LEVELS)
This entry point is the address of a table of ring levels required when dispatching each of the functions hooked in the dispatch table by FillLogicalDeviceBlock. The table is an array of bytes corresponding to the functions in the dispatch table, terminating with a byte of 0 (that is, an ASCIIZ string). The most significant six bits of each byte are reserved and must be 0. The remaining two bits of each byte represent the ring level to be used when dispatching the corresponding function in the dispatch table. 00 = End of Table        10 = Ring 2 01 = Ring-2-Conforming   11 = Ring 3 Any function that does not have a corresponding byte in the table will be dispatched as Ring-2-conforming. This is the most desirable case from the standpoint of system performance. The following example of five bytes would declare GreArc as Ring 3, GrePartialArc as Ring 2, and all other functions as Ring-2-conforming: 0x01   0x01    0x03    0x02    0x00 If the address of this table is not exported, all functions will be dispatched as Ring-2-conforming as if the table had contained the single byte 0x00.

QueryScreenResolutions

 * OS2_PM_DRV_QUERYSCREENRESOLUTIONS