структура DXGK_CONTEXTINFO (d3dkmddi.h)
Структура DXGK_CONTEXTINFO описывает контекст устройства.
Синтаксис
typedef struct _DXGK_CONTEXTINFO {
UINT DmaBufferSize;
UINT DmaBufferSegmentSet;
UINT DmaBufferPrivateDataSize;
UINT AllocationListSize;
UINT PatchLocationListSize;
UINT Reserved;
DXGK_CONTEXTINFO_CAPS Caps;
ULONG PagingCompanionNodeId;
} DXGK_CONTEXTINFO;
Члены
DmaBufferSize
Размер буфера аппаратных команд, передаваемых через прямой доступ к памяти (DMA) в единицу обработки графики (GPU).
Буфер DMA может увеличиваться и уменьшаться после создания контекста; однако буфер DMA никогда не может уменьшиться, чем начальный размер, который DmaBufferSize.
DmaBufferSegmentSet
Идентификаторы сегментов, в которых буфер DMA должен быть доступен gpu.
DmaBufferPrivateDataSize
Размер в байтах структуры частных данных драйвера-резидента, связанной с каждым буфером DMA. Память для этой структуры частных данных выделяется из непагированного пула. Если драйвер указывает ноль в DmaBufferPrivateDataSize, для структуры частных данных не выделяется память.
Структура частных данных, связанная с буфером DMA, инициализирована до нуля при создании буфера DMA. В течение времени существования буфера DMA диспетчер памяти видео никогда не обращается к структуре частных данных, связанной с буфером DMA.
AllocationListSize
Начальное число элементов в массиве выделений (то есть массив DXGK_ALLOCATIONLIST структур). Это начальная цифра выделения, которую драйвер запрашивает в pAllocationList членов DXGKARG_PRESENT и DXGKARG_RENDER структур в вызовах dxgkDdiPresent и dxgkDdiRender функций соответственно.
Список выделения может увеличиваться и уменьшаться после создания контекста; Однако список выделения никогда не может уменьшиться, чем начальный размер, который AllocationListSize.
PatchLocationListSize
Начальное число элементов в массиве расположений исправлений (то есть массив D3DDDI_PATCHLOCATIONLIST структур) для устройства в пользовательском режиме и режиме ядра. Это начальная часть расположений исправлений, которые драйвер запрашивает в pPatchLocationListIn члены структур DXGKARG_RENDER в вызовах функции DxgkDdiRender.
Список расположений исправлений может увеличиваться и уменьшаться после создания контекста; Однако список расположений исправлений никогда не может уменьшиться, чем начальный размер, который PatchLocationListSize.
Reserved
Этот элемент зарезервирован и должен иметь значение нулю.
Этот член доступен начиная с Windows 7.
Caps
Описание дополнительных функций, поддерживаемых контекстом.
Поддерживается начиная с Windows 10.
PagingCompanionNodeId
Указывает идентификатор ядра, используемого для этого компаньона по страницам контекста, от нуля.
Поддерживается начиная с Windows 10.
Замечания
Драйвер мини-порта отображения задает значения для элементов DmaBufferSize и AllocationListSize, чтобы гарантировать следующее:
- Графический подсистема Microsoft DirectX может использовать только один буфер прямого доступа к памяти (DMA) для отображения (с помощью драйвера минипорта DxgkDdiPresent) по крайней мере одну структуру RECT для всех сценариев.
- Размеры буферов DMA и буферов списка выделения достаточно большие, чтобы содержать по крайней мере одну команду, которая не может быть разделена по нескольким буферам.
- Размеры буферов DMA и буферов списка выделения достаточно большие, чтобы избежать накладных расходов на настройку и DMA.
Если драйвер задает DmaBufferSegmentSet значение 0, диспетчер памяти видео выделяет непрерывную заблокированную память с страницами, которая сопоставляется с объединенной памятью записи для буферов DMA. Поэтому GPU должен получить доступ к буферам DMA с помощью циклов PCI на компьютерах, где передача AGP, которая происходит за пределами диафрагмы AGP, запрещена.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows Vista |
заголовка | d3dkmddi.h (include D3dkmddi.h) |