NtGdiDdQueryDirectDrawObject 函数

[此函数可能会随每个操作系统修订版而更改。 请改用 DirectDraw 和 Microsoft Direct3DAPI;这些 API 将应用程序与此类操作系统更改隔离开来,并隐藏与显示驱动程序直接交互时涉及的许多其他困难。]

查询以前创建的 Microsoft DirectDraw 对象的内核模式表示形式,以获取其功能。

语法

BOOL APIENTRY NtGdiDdQueryDirectDrawObject(
  _In_  HANDLE                      hDirectDrawLocal,
  _Out_ DD_HALINFO                  *pHalInfo,
        DWORD                       *pCallBackFlags,
  _Out_ LPD3DNTHAL_CALLBACKS        puD3dCallbacks,
  _Out_ LPD3DNTHAL_GLOBALDRIVERDATA puD3dDriverData,
  _Out_ PDD_D3DBUFCALLBACKS         puD3dBufferCallbacks,
  _Out_ LPDDSURFACEDESC             puD3dTextureFormats,
  _Out_ DWORD                       *puNumHeaps,
  _Out_ VIDEOMEMORY                 *puvmList,
  _Out_ DWORD                       *puNumFourCC,
  _Out_ DWORD                       *puFourCC
);

参数

hDirectDrawLocal [in]

以前创建的内核模式 DirectDraw 设备的句柄。

pHalInfo [out]

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

pCallBackFlags

指向调用方提供的缓冲区的指针,该缓冲区存储驱动程序报告的回调标志。 缓冲区的大小应为 3*size of (DWORD) ,并按以下顺序存储回调标志:pCallBackFlags[0] 用于 DD_CALLBACKS 中的标志,pCallBackFlags[1] 用于 DD_SURFACECALLBACKS 中的标志,pCallBackFlags[2] 用于 DD_PALETTECALLBACKS中的标志。 有关详细信息,请参阅 DDK 文档。

puD3dCallbacks [out]

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

puD3dDriverData [out]

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

puD3dBufferCallbacks [out]

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

puD3dTextureFormats [out]

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

puNumHeaps [out]

指向 DD_HALINFO 的 dwNumHeaps 成员 指针。vmiDatadwNumHeaps 成员指定 puvmList 中的内存堆数。 有关详细信息,请参阅 DDK 文档。

puvmList [out]

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

puNumFourCC [out]

指向 DD_HALINFOpuNumFourCCCodes 成员的指针。ddCapspuNumFourCCCodes 成员指定驱动程序支持的 FOURCC) 代码 (四字符代码的数目。 有关详细信息,请参阅 DDK 文档。

puFourCC [out]

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

返回值

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

注解

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

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

要求

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

另请参阅

图形低级别客户端支持

DdQueryDirectDrawObject

NtGdiDdCreateDirectDrawObject