DXGKCB_ENUMHANDLECHILDREN 枚举与给定资源关联的分配,一次一个分配。
语法
DXGKCB_ENUMHANDLECHILDREN DxgkcbEnumhandlechildren;
D3DKMT_HANDLE DxgkcbEnumhandlechildren(
[in] IN_CONST_PDXGKARGCB_ENUMHANDLECHILDREN unnamedParam1
)
{...}
参数
[in] unnamedParam1
指向描述要检索的子分配的父资源和索引的 DXGKARGCB_ENUMHANDLECHILDREN 结构的指针。
返回值
DXGKCB_ENUMHANDLECHILDREN 将 Dxgkrnl特定句柄返回到 pData 描述的子分配。 若要检索句柄的特定于设备的 数据,显示微型端口驱动程序必须调用 DXGKCB_GETHANDLEDATA 函数。
如果 索引中提供的子分配索引值DXGKARGCB_ENUMHANDLECHILDREN 结构的成员超过了与父资源关联的分配数,DXGKCB_ENUMHANDLECHILDREN 将返回 NULL 句柄。 如果 DXGKCB_ENUMHANDLECHILDREN 意外返回 NULL 句柄,则 DirectX 图形内核子系统无法将句柄解析为父资源,原因如下:
- 由于恶意攻击或其他 bug,从用户模式显示驱动程序收到无效句柄。
- 分配有生存期问题。
如果 NULL 句柄意外返回,则显示微型端口驱动程序应失败其当前运行的 DDI 函数并STATUS_INVALID_HANDLE。
言论
显示微型端口驱动程序可以在循环中调用 DXGKCB_ENUMHANDLECHILDREN 来枚举与资源关联的所有分配。
分配句柄索引从零开始。 如果显示微型端口驱动程序将 pData->Index 设置为 0,DXGKCB_ENUMHANDLECHILDREN 返回第一个分配句柄;如果 索引 设置为 1,DXGKCB_ENUMHANDLECHILDREN 返回第二个分配句柄;等等。 如果 索引 大于与资源关联的分配数,DXGKCB_ENUMHANDLECHILDREN 返回 NULL。
DXGKCB_XXX 函数由 Dxgkrnl实现。 若要使用此回调函数,请设置 DXGKARGCB_ENUMHANDLECHILDREN 的相应成员,然后通过 DXGKRNL_INTERFACE调用 DxgkCbEnumHandleChildren。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows Vista (WDDM 1.0) |
目标平台 | 桌面 |
标头 | d3dkmddi.h (包括 D3dkmddi.h) |
IRQL | PASSIVE_LEVEL |