функция обратного вызова 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 |