Поделиться через


функция обратного вызова DXGKCB_ENUMHANDLECHILDREN (d3dkmddi.h)

DXGKCB_ENUMHANDLECHILDREN перечисляет выделения, связанные с заданным ресурсом, по одному выделению за раз.

Синтаксис

DXGKCB_ENUMHANDLECHILDREN DxgkcbEnumhandlechildren;

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

Параметры

[in] unnamedParam1

Указатель на структуру DXGKARGCB_ENUMHANDLECHILDREN, описывающую родительский ресурс и индекс извлекаемого дочернего выделения.

Возвращаемое значение

DXGKCB_ENUMHANDLECHILDREN возвращает дескриптор Dxgkrnl для дочернего выделения, описывающего pData. Чтобы получить данные, относящиеся к устройству для дескриптора, драйвер мини-порта дисплея должен вызвать функцию DXGKCB_GETHANDLEDATA.

DXGKCB_ENUMHANDLECHILDREN возвращает дескриптор NULL, если значение индекса дочернего выделения, предоставленное в элементе индекса структуры DXGKARGCB_ENUMHANDLECHILDREN, превышает количество выделений, связанных с родительским ресурсом. Если DXGKCB_ENUMHANDLECHILDREN неожиданно возвращает дескриптор NULL, подсистема ядра графики DirectX не смогла разрешить дескриптор родительскому ресурсу по такой причине, как следующие возможности:

  • Недопустимый дескриптор был получен из драйвера отображения в пользовательском режиме из-за вредоносной атаки или другой ошибки.
  • Выделения имели проблемы со временем существования.

Если дескриптор null возвращается неожиданно, драйвер минипорта отображения должен завершить работу функции DDI с STATUS_INVALID_HANDLE.

Замечания

Драйвер мини-порта дисплея может вызывать DXGKCB_ENUMHANDLECHILDREN в цикле для перечисления всех выделений, связанных с ресурсом.

Индексы дескриптора выделения основаны на нулях. Если драйвер мини-порта отображения задает значение pData->Index значение 0, DXGKCB_ENUMHANDLECHILDREN возвращает первый дескриптор выделения; Если индекс имеет значение 1, DXGKCB_ENUMHANDLECHILDREN возвращает второй дескриптор выделения; и т. д. Если индекс больше количества выделений, связанных с ресурсом, DXGKCB_ENUMHANDLECHILDREN возвращает NULL.

DXGKCB_XXX функции реализуются Dxgkrnl. Чтобы использовать эту функцию обратного вызова, задайте соответствующие члены DXGKARGCB_ENUMHANDLECHILDREN, а затем вызовите DxgkCbEnumHandleChildren через DXGKRNL_INTERFACE.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows Vista (WDDM 1.0)
целевая платформа Настольный
заголовка d3dkmddi.h (include D3dkmddi.h)
IRQL PASSIVE_LEVEL

См. также

DXGKARGCB_ENUMHANDLECHILDREN

DXGKCB_GETHANDLEDATA

DXGKRNL_INTERFACE