DXGKCB_ENUMHANDLECHILDREN回调函数 (d3dkmddi.h)

DXGKCB_ENUMHANDLECHILDREN 枚举与给定资源关联的分配,一次一个分配。

语法

DXGKCB_ENUMHANDLECHILDREN DxgkcbEnumhandlechildren;

D3DKMT_HANDLE DxgkcbEnumhandlechildren(
  [in] IN_CONST_PDXGKARGCB_ENUMHANDLECHILDREN unnamedParam1
)
{...}

参数

[in] unnamedParam1

指向 DXGKARGCB_ENUMHANDLECHILDREN 结构的指针,该结构描述父资源和要检索的子分配的索引。

返回值

DXGKCB_ENUMHANDLECHILDRENpData 描述的子分配返回特定于 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

另请参阅

DXGKARGCB_ENUMHANDLECHILDREN

DXGKCB_GETHANDLEDATA

DXGKRNL_INTERFACE