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


функция обратного вызова 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 ранее предоставила этот дескриптор подсистеме ядра графики 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, только если выделено выделение (указываемое при создании флага битового поля в элементе Флаги структуры DXGKARG_OPENALLOCATION). Драйвер должен определить, что он может считывать только данные частного драйвера выделения при открытии выделения (т. е. если флаг создания битового поля не задан).

DxgkDdiOpenAllocation должен быть создан на страницу.

Требования

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

См. также

DXGKARG_CREATEDEVICE

DXGKARG_OPENALLOCATION

DXGK_OPENALLOCATIONINFO

DxgkDdiCreateAllocation

DxgkDdiCreateDevice