DdQueryDirectDrawObject 函数 (ddrawgdi.h)

[此函数可能会随每个操作系统修订而更改。 请改用 Microsoft DirectDraw 和 Microsoft Direct3DAPIs;这些 API 使应用程序不受此类操作系统更改影响,并隐藏了与显示驱动程序直接交互所涉及的许多其他困难。]

NtGdiDdQueryDirectDrawObject 函数的包装器,并查询以前创建的内核模式表示功能。

GdiEntry2 定义为此函数的别名。

语法

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
);

参数

pDirectDrawGlobal

指向以前使用 DdCreateDirectDrawObject 为其创建了内核端对象的用户模式 DirectDraw 对象的指针。

pHalInfo

指向将填充设备功能的 DDHALINFO 结构的指针。 有关详细信息,请参阅 DDK 文档。

pDDCallbacks

指向回调指针表的指针。 该表用指向模拟 DirectDraw 显示驱动程序的 Gdi32.dll 中的函数的指针填充。 此回调表与 DDHAL_DDCALLBACKS 结构相同,该结构映射到 DDK 文档中讨论的 DD_CALLBACKS 结构。

pDDSurfaceCallbacks

指向图面回调指针表的指针。 该表用指向模拟 DirectDraw 显示驱动程序的 Gdi32.dll 中的函数的指针填充。 此回调表与 DDHAL_DDSURFACECALLBACKS 结构相同,该结构映射到 DDK 文档中讨论 的 DD_SURFACECALLBACKS 结构。

pDDPaletteCallbacks

指向调色板回调指针表的指针。 该表用指向模拟 DirectDraw 显示驱动程序的 Gdi32.dll 中的函数的指针填充。 此回调表与 DDHAL_DDPALETTECALLBACKS 结构相同,该结构映射到 DDK 文档中讨论 的DD_PALETTECALLBACKS 结构。

pD3dCallbacks

指向 Direct3D 回调指针表的指针。 该表用指向模拟 Direct3D 显示驱动程序的 Gdi32.dll 中的函数的指针填充。 此回调表与 DDK 文档中讨论的 D3DHAL_CALLBACKS 结构相同。

pD3dDriverData

指向 D3DHAL_GLOBALDRIVERDATA 数据的指针,如 DDK 文档中所述。

pD3dBufferCallbacks

指向回调指针表的指针。 该表用指向模拟 Direct3D 显示驱动程序的 Gdi32.dll 中的函数的指针填充。 此回调表与 DDHAL_DDEXEBUFCALLBACKS 结构相同,该结构映射到 DDK 文档中讨论的 DD_D3DBUFCALLBACKS 结构,只不过 DD_D3DBUFCALLBACKS 中的 XxxD3DBuffer 成员将替换为 DDHAL_DDEXEBUFCALLBACKS 中的 XxxExecuteBuffer。

pD3dTextureFormats

指向定义允许纹理格式集的 DDSURFACEDESC 结构的数组的指针。

pdwFourCC

指向支持的 四个字符代码列表的指针 (FOURCC) 图面格式。 可以为 NULL

pvmList

指向视频内存堆描述符列表的指针。 可以为 NULL。 不使用此参数,因为视频内存管理完全在内核模式下处理。

返回值

如果成功,此函数返回 TRUE;否则返回 FALSE

注解

此函数的调用设计为在两步过程中进行。 在第一步中,pdwFourCCpvmListpD3dTextureFormats 应为 NULL,DdQueryDirectDrawObject 将填充 DDHALINFOddCapsdwNumFourCCCodes,DDHALINFOvmiDatadwNumHeapsD3DHAL_GLOBALDRIVERDATA。包含要返回的条目数的 dwNumTextureFormats。 第二次调用中,调用方应分配指示大小的数组,并传递这些指针,而不是 pdwFourCCpvmListpD3dTextureFormats 参数中的 NULL 值。 然后,将使用适当的数据填充数组。

建议应用程序使用 DirectDraw 和 Direct3D API 来创建和管理图形设备对象。 这些构造以简化且与操作系统无关的方式抽象化设备创建过程。

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 ddrawgdi.h

另请参阅

图形低级别客户端支持