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


структура DXGK_DEVICEINFO (d3dkmddi.h)

Структура DXGK_DEVICEINFO описывает параметры, необходимые подсистеме ядра графического ядра Microsoft DirectX от драйвера мини-порта дисплея.

Синтаксис

typedef struct _DXGK_DEVICEINFO {
  [out] UINT                 DmaBufferSize;
  [out] UINT                 DmaBufferSegmentSet;
  [out] UINT                 DmaBufferPrivateDataSize;
  [out] UINT                 AllocationListSize;
  [out] UINT                 PatchLocationListSize;
  [out] DXGK_DEVICEINFOFLAGS Flags;
} DXGK_DEVICEINFO;

Члены

[out] DmaBufferSize

Размер (в байтах) буфера аппаратных команд, которые отправляются через прямой доступ к памяти (DMA) на оборудование.

Буфер DMA может увеличиваться и уменьшаться после создания устройства; однако буфер DMA никогда не может уменьшаться меньше начального размера, указанного DmaBufferSize .

[out] DmaBufferSegmentSet

Идентификаторы сегментов, в которых буферы DMA должны быть доступны графическому процессору (GPU).

[out] DmaBufferPrivateDataSize

Размер (в байтах) частной структуры данных, резидентной драйвером, связанной с каждым буфером DMA. Память для этой частной структуры данных выделяется из непагрегированного пула. Если драйвер указывает ноль в DmaBufferPrivateDataSize, для частной структуры данных память не выделяется.

Структура частных данных, связанная с буфером DMA, инициализируется до нуля при создании буфера DMA. В течение времени существования буфера DMA диспетчер видеопамятки никогда не обращается к частной структуре данных, связанной с буфером DMA.

[out] AllocationListSize

Начальное число элементов в массиве выделений (то есть массиве DXGK_ALLOCATIONLIST структур). Это число является начальным числом выделений, запрашиваемых драйвером в членах pAllocationListDXGKARG_PRESENT и DXGKARG_RENDER структур в вызовах функций DxgkDdiPresent и DxgkDdiRender драйвера.

Список выделения может увеличиваться и уменьшаться после создания устройства; Однако список выделения никогда не может уменьшаться меньше начального размера, указанного в AllocationListSize .

[out] PatchLocationListSize

Начальное число элементов в массиве расположений исправлений (то есть массиве D3DDDI_PATCHLOCATIONLIST структур) для устройства в пользовательском режиме и режиме ядра. Это число является начальным числом расположений исправлений, которые драйвер запрашивает, чтобы они были в членах pPatchLocationListInDXGKARG_RENDER структур в вызовах функции DxgkDdiRender .

Список расположений исправлений может увеличиваться и уменьшаться после создания устройства; Однако список расположений исправлений никогда не может уменьшаться меньше начального размера, указанного в PatchLocationListSize .

[out] Flags

Структура DXGK_DEVICEINFOFLAGS , определяющая в флагах битовых полей сведения об устройстве.

Комментарии

Драйвер мини-порта дисплея задает значения для членов DmaBufferSize и AllocationListSize , чтобы гарантировать следующее:

  • Графическая подсистема DirectX может использовать только один буфер DMA для отображения (с помощью функции DxgkDdiPresent драйвера мини-порта дисплея) по крайней мере одну структуру RECT для всех сценариев.
  • Размеры буферов DMA и списков выделения достаточно большие, чтобы вместить по крайней мере одну команду, которую нельзя разделить на несколько буферов.
  • Размеры буферов DMA и списков выделения достаточно велики, чтобы избежать накладных расходов на настройку и DMA.
Драйвер мини-порта дисплея может указывать только сегменты диафрагмы в элементе DmaBufferSegmentSet ; Если драйвер указывает сегмент памяти, происходит сбой при создании устройства.

Если драйвер устанавливает для DmaBufferSegmentSet значение 0, диспетчер видеопамятки выделяет для буферов DMA непрерывную память с блокировкой страниц, которая сопоставляется с объединенной памятью записи. Таким образом, GPU должен получать доступ к буферам DMA с помощью циклов PCI в системах, где передача AGP, которая происходит за пределами апертуры AGP, не разрешена.

Требования

Требование Значение
Минимальная версия клиента Windows Vista
Верхняя часть d3dkmddi.h (включая D3dkmddi.h)

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

D3DDDI_PATCHLOCATIONLIST

DXGKARG_PRESENT

DXGKARG_RENDER

DXGK_ALLOCATIONLIST

DXGK_DEVICEINFOFLAGS

DxgkDdiCreateDevice

DxgkDdiPresent

DxgkDdiRender