The data types defined in the following table appear in the device driver interface. Several of the listed data types are those user objects previously described in User Objects.
| DDI Data Type | Variable Name Prefix | Definition |
| BOOL | b | A 32 bit value that can be TRUE or FALSE. |
| BYTE | j | An 8 bit unsigned integer. |
| BRUSHOBJ* | pbo | A brush object. |
| CLIPLINE | cl | A clipline object. |
| CLIPOBJ* | pco | A clipping object. |
| DHPDEV | dhpdev | A 32 bit handle, defined by the device driver, that identifies a physical device. |
| DHSURF | dhsurf | A 32 bit handle, defined by the device driver, that identifies a device managed surface. |
| FIX | fix | A 32 bit signed fixed point number. 28 bits are to the left of the binary point. |
| FLOAT | e | A 32 bit IEEE floating point number. |
| FLOAT_LONG | el | A 32 bit value that is interpreted as either a LONG or FLOAT, depending on a separate flag. |
| FLONG | fl | A set of 32 bit flags. |
| FONTOBJ* | pfo | A font object. |
| FSHORT | fs | A set of 16 bit flags. |
| HBM | hbm | A 32 bit handle, defined by GDI, that identifies a bitmap. |
| HPAL | hpal | A 32 bit handle, defined by GDI, that identifies a palette. |
| HSURF | hsurf | A 32 bit handle, defined by GDI, that identifies a surface. |
| LONG | l | A 32 bit signed integer. |
| MIX | mix | A 32 bit quantity, whose lower 16 bits define foreground and background mix modes. |
| PALOBJ* | ppalo | A palette object. |
| PATHOBJ* | ppo | A path object. |
| POINTE | pte | A point structure that consists of {FLOAT x,y;}. |
| POINTFX | ptfx | A point structure that consists of {FIX x,y;}. |
| POINTL | ptl | A point structure that consists of {LONG x,y;}. |
| PWSZ | pwsz | A pointer to a zero-terminated Unicode string. |
| PVOID | pv | A pointer to a structure that is not defined by GDI. |
| RECTL | rcl | A rectangle structure that consists of {LONG xLeft,yTop,xRight,yBottom;} |
| RECTFX | rcfx | A rectangle structure that consists of {FIX xLeft,yTop,xRight,yBottom;} |
| ROP4 | rop4 | A 32 bit value that specifies how source, destination, pattern, and mask pixels are to be mixed. |
| SHORT | s | A 16 bit signed integer. |
| SIZEL | sizl | A two-dimensional size structure that consists of {ULONG cx,cy;}. |
| STROBJ* | pstro | A text string object. |
| SURFOBJ* | pso | A surface object. |
| ULONG | ul | A 32 bit unsigned integer. |
| USHORT | us | A 16 bit unsigned integer. |
| XFORMOBJ* | pxo | A coordinate transform object. |
| XLATEOBJ* | pxlo | A color translation object. |
The parameter prefixes listed in the next table are used to modify variable name prefixes in accordance with their usage.
| Prefix | Parameter Usage |
| i | An enumerated index |
| c | A count |
| p | A pointer |