DdQueryDirectDrawObject function (ddrawgdi.h)

[This function is subject to change with each operating system revision. Instead, use the Microsoft DirectDraw and Microsoft Direct3DAPIs; these APIs insulate applications from such operating system changes, and hide many other difficulties involved in interacting directly with display drivers.]

Wrapper for the NtGdiDdQueryDirectDrawObject function and queries a previously created kernel-mode representation for capabilities.

GdiEntry2 is defined as an alias for this function.

Syntax

BOOL DdQueryDirectDrawObject(
  LPDDRAWI_DIRECTDRAW_GBL    pDirectDrawGlobal,
  LPDDHALINFO                pHalInfo,
  LPDDHAL_DDCALLBACKS        pDDCallbacks,
  LPDDHAL_DDSURFACECALLBACKS pDDSurfaceCallbacks,
  LPDDHAL_DDPALETTECALLBACKS pDDPaletteCallbacks,
  LPD3DHAL_CALLBACKS         pD3dCallbacks,
  LPD3DHAL_GLOBALDRIVERDATA  pD3dDriverData,
  LPDDHAL_DDEXEBUFCALLBACKS  pD3dBufferCallbacks,
  LPDDSURFACEDESC            pD3dTextureFormats,
  LPDWORD                    pdwFourCC,
  LPVIDMEM                   pvmList
);

Parameters

pDirectDrawGlobal

Pointer to a user-mode DirectDraw object for which a kernel-side object was previously created with DdCreateDirectDrawObject.

pHalInfo

Pointer to a DDHALINFO structure that will be filled with the device's capabilities. See DDK documentation for details.

pDDCallbacks

Pointer to a table of callback pointers. The table is filled with pointers to functions within Gdi32.dll that imitate a DirectDraw display driver. This callback table is identical to the DDHAL_DDCALLBACKS structure, which maps to the DD_CALLBACKS structure discussed in the DDK documentation.

pDDSurfaceCallbacks

Pointer to a table of surface callback pointers. The table is filled with pointers to functions within Gdi32.dll that imitate a DirectDraw display driver. This callback table is identical to the DDHAL_DDSURFACECALLBACKS structure, which maps to the DD_SURFACECALLBACKS structure discussed in the DDK documentation.

pDDPaletteCallbacks

Pointer to a table of palette callback pointers. The table is filled with pointers to functions within Gdi32.dll that imitate a DirectDraw display driver. This callback table is identical to the DDHAL_DDPALETTECALLBACKS structure, which maps to the DD_PALETTECALLBACKS structure discussed in the DDK documentation.

pD3dCallbacks

Pointer to a table of Direct3D callback pointers. The table is filled with pointers to functions within Gdi32.dll that imitate a Direct3D display driver. This callback table is identical to the D3DHAL_CALLBACKS structure discussed in the DDK documentation.

pD3dDriverData

Pointer to D3DHAL_GLOBALDRIVERDATA data, as described in the DDK documentation.

pD3dBufferCallbacks

Pointer to a table of callback pointers. The table is filled with pointers to functions within Gdi32.dll that imitate a Direct3D display driver. This callback table is identical to the DDHAL_DDEXEBUFCALLBACKS structure, which maps to the DD_D3DBUFCALLBACKS structure discussed in the DDK documentation, except that members XxxD3DBuffer in DD_D3DBUFCALLBACKS are replaced with XxxExecuteBuffer in DDHAL_DDEXEBUFCALLBACKS.

pD3dTextureFormats

Pointer to an array of DDSURFACEDESC structures that define the set of permissible texture formats.

pdwFourCC

Pointer to a list of supported Four-Character Codes (FOURCC) surface formats. Can be NULL.

pvmList

Pointer to a list of video memory heap descriptors. Can be NULL. This parameter is not used because video memory management is handled entirely within kernel mode.

Return value

If successful, this function returns TRUE; otherwise it returns FALSE.

Remarks

A call to this function is designed to be made in a two-step process. In the first step, pdwFourCC, pvmList and pD3dTextureFormats should be NULL, and DdQueryDirectDrawObject will fill in DDHALINFO.ddCaps.dwNumFourCCCodes, DDHALINFO.vmiData.dwNumHeaps, and D3DHAL_GLOBALDRIVERDATA.dwNumTextureFormats with the number of entries that are to be returned. In the second call, the caller should allocate arrays of the indicated size and pass those pointers instead of NULL values in the pdwFourCC, pvmList and pD3dTextureFormats parameters. The arrays will then be populated with appropriate data.

Applications are advised to use the DirectDraw and Direct3D APIs to create and manage graphics device objects. These constructs abstract the device creation process in a simplified and operating-system-independent way.

Requirements

Requirement Value
Minimum supported client Windows 2000 Professional [desktop apps only]
Minimum supported server Windows 2000 Server [desktop apps only]
Target Platform Windows
Header ddrawgdi.h

See also

Graphics Low Level Client Support