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

Функция DxgkDdiOpenAllocation привязывает выделения, не относящиеся к устройству, созданные функцией DxgkDdiCreateAllocation , к выделениям, характерным для указанного графического контекстного устройства.

Синтаксис

DXGKDDI_OPENALLOCATIONINFO DxgkddiOpenallocationinfo;

NTSTATUS DxgkddiOpenallocationinfo(
  [in] IN_CONST_HANDLE hDevice,
  [in] IN_CONST_PDXGKARG_OPENALLOCATION pOpenAllocation
)
{...}

Параметры

[in] hDevice

Дескриптор графического контекстного устройства, с которым привязаны выделения. Функция DxgkDdiCreateDevice драйвера дисплея miniport ранее предоставляла этот дескриптор подсистеме графического ядра Microsoft DirectX в элементе hDeviceструктуры DXGKARG_CREATEDEVICE .

[in] pOpenAllocation

Указатель на структуру DXGKARG_OPENALLOCATION , содержащую сведения о выделении привязки.

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

DxgkDdiOpenAllocation возвращает одно из следующих значений:

Код возврата Описание
STATUS_SUCCESS DxgkDdiOpenAllocation успешно привязал выделения к устройству графического контекста, указанному параметром hDevice.
STATUS_INVALID_PARAMETER Параметры, переданные в DxgkDdiOpenAllocation, содержали ошибки, которые не позволяли выполнить его.
STATUS_NO_MEMORY DxgkDdiOpenAllocation не удалось выделить память, необходимую для ее завершения.
STATUS_GRAPHICS_DRIVER_MISMATCH Драйвер мини-порта дисплея несовместим с драйвером дисплея в пользовательском режиме, который инициировал вызов DxgkDdiOpenAllocation (то есть предоставил частные данные драйверу минипорта дисплея).

Комментарии

Подсистема графического ядра DirectX вызывает функцию DxgkDdiOpenAllocation драйвера минипорта дисплея для привязки не зависящих от объектов выделения, созданных функцией DxgkDdiCreateAllocation , к выделениям, характерным для графического контекстного устройства, заданного параметром hDevice . Драйвер мини-порта дисплея привязывает выделения к устройству, чтобы драйвер смог отслеживать данные распределения, относящиеся к конкретному устройству.

Драйвер мини-порта дисплея может привязать выделение к любому устройству, созданному любым процессом (на том же графическом адаптере), а не только к устройству в процессе создания.

Когда DxgkDdiOpenAllocation возвращает STATUS_SUCCESS, драйвер задает член hDeviceSpecificAllocationструктуры DXGK_OPENALLOCATIONINFO для каждого выделения значение, отличное от NULL. Структура DXGK_OPENALLOCATIONINFO для каждого выделения — это элемент массива, задающий элемент pOpenAllocationструктуры DXGKARG_OPENALLOCATION .

Драйвер может изменять данные частного драйвера выделения, передаваемые в элементе pPrivateDriverDataструктуры DXGK_OPENALLOCATIONINFO только при создании выделения (что указывается при установке флага Создать битовое поле в элементе Flags структуры DXGKARG_OPENALLOCATION ). Драйвер должен определить, что он может считывать данные частного драйвера распределения только при открытии выделения (т. е. если не установлен флаг Создать битовое поле).

DxgkDdiOpenAllocation следует сделать страничной.

Требования

Требование Значение
Минимальная версия клиента Windows Vista
Целевая платформа Персональный компьютер
Верхняя часть d3dkmddi.h
IRQL PASSIVE_LEVEL

См. также раздел

DXGKARG_CREATEDEVICE

DXGKARG_OPENALLOCATION

DXGK_OPENALLOCATIONINFO

DxgkDdiCreateAllocation

DxgkDdiCreateDevice