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