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 成员 的指针。vmiData。 dwNumHeaps 成员指定 puvmList 中的内存堆数。 有关详细信息,请参阅 DDK 文档。
-
puvmList [out]
-
指向视频内存堆描述符列表的指针。 可以为 NULL。 不使用此参数,因为视频内存管理完全在内核模式下处理。
-
puNumFourCC [out]
-
指向 DD_HALINFO 的 puNumFourCCCodes 成员的指针。ddCaps。 puNumFourCCCodes 成员指定驱动程序支持的 FOURCC) 代码 (四字符代码的数目。 有关详细信息,请参阅 DDK 文档。
-
puFourCC [out]
-
指向支持的 四字符代码列表的指针 (FOURCC) 图面格式。 可以为 NULL。
返回值
如果成功,此函数返回 TRUE;否则返回 FALSE。
注解
对此函数的调用设计为在两步过程中进行。 在第一步中, puFourCC、 puvmList 和 puD3dTextureFormats 应为 NULL, DdQueryDirectDrawObject 将填充 DD_HALINFO。ddCaps。dwNumFourCCCodes, DD_HALINFO。vmiData。dwNumHeaps 和 D3DHAL_GLOBALDRIVERDATA。包含要返回的条目数的 dwNumTextureFormats 。 第二次调用中,调用方应分配指示大小的数组,并在 puFourCC、puvmList 和 puD3dTextureFormats 参数中传递这些指针,而不是 NULL 值。 然后,将使用适当的数据填充数组。
建议应用程序使用 DirectDraw 和 Direct3D API 来创建和管理图形设备对象。 这些构造以简化且与操作系统无关的方式抽象化设备创建过程。
要求
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 |
Windows 2000 Server [仅限桌面应用] |
标头 |
|
另请参阅