estructura DXGK_CONTEXTINFO (d3dkmddi.h)

La estructura DXGK_CONTEXTINFO describe un contexto de dispositivo.

Sintaxis

typedef struct _DXGK_CONTEXTINFO {
  UINT                  DmaBufferSize;
  UINT                  DmaBufferSegmentSet;
  UINT                  DmaBufferPrivateDataSize;
  UINT                  AllocationListSize;
  UINT                  PatchLocationListSize;
  UINT                  Reserved;
  DXGK_CONTEXTINFO_CAPS Caps;
  ULONG                 PagingCompanionNodeId;
} DXGK_CONTEXTINFO;

Miembros

DmaBufferSize

El tamaño, en bytes, del búfer de comandos de hardware que se envía a través del acceso directo a la memoria (DMA) a la unidad de procesamiento gráfico (GPU).

El búfer DMA puede crecer y reducirse después de crear el contexto; sin embargo, el búfer DMA nunca puede reducirse más pequeño que el tamaño inicial que DmaBufferSize especifica.

DmaBufferSegmentSet

Identificadores de los segmentos en los que se debe acceder al búfer DMA a la GPU.

DmaBufferPrivateDataSize

Tamaño, en bytes, de la estructura de datos privados residentes en el controlador que está asociada a cada búfer DMA. La memoria de esta estructura de datos privada se asigna desde un grupo no paginado. Si el controlador especifica cero en DmaBufferPrivateDataSize, no se asigna memoria para la estructura de datos privada.

La estructura de datos privada asociada a un búfer DMA se inicializa en cero cuando se crea el búfer DMA. Durante la vigencia del búfer DMA, el administrador de memoria de vídeo nunca accede a la estructura de datos privada asociada al búfer DMA.

AllocationListSize

Número inicial de elementos de una matriz de asignaciones (es decir, una matriz de estructuras DXGK_ALLOCATIONLIST ). Este número es el número inicial de asignaciones que el controlador solicita estar en los miembros pAllocationList de la DXGKARG_PRESENT y DXGKARG_RENDER estructuras en llamadas a las funciones DxgkDdiPresent y DxgkDdiRender del controlador, respectivamente.

La lista de asignación puede crecer y reducirse una vez creado el contexto; sin embargo, la lista de asignación nunca puede reducirse más pequeña que el tamaño inicial que AllocationListSize especifica.

Nota Si DXGK_CREATECONTEXTFLAGS. GdiContext se establece en 1, lo que significa que el contexto se crea como un contexto específico de GDI, AllocationListSize debe establecerse en un valor de 256.
 

PatchLocationListSize

Número inicial de elementos de una matriz de ubicaciones de revisión (es decir, una matriz de estructuras de D3DDDI_PATCHLOCATIONLIST ) para el dispositivo en modo de usuario y modo kernel. Este número es el número inicial de ubicaciones de revisión que el controlador solicita estar en los miembros pPatchLocationListIn de las estructuras de DXGKARG_RENDER en llamadas a su función DxgkDdiRender .

La lista de ubicación de revisión puede crecer y reducirse después de crear el contexto; sin embargo, la lista de ubicación de revisión nunca puede reducirse más pequeño que el tamaño inicial que Especifica PatchLocationListSize .

Reserved

Este miembro está reservado y debe establecerse en cero.

Este miembro está disponible a partir de Windows 7.

Caps

Describe las características opcionales admitidas por el contexto.

Se admite a partir de Windows 10.

PagingCompanionNodeId

Especifica el identificador de motor de base cero del motor que se va a usar para este complemento de paginación de contexto.

Se admite a partir de Windows 10.

Comentarios

Un controlador de minipuerto de pantalla especifica valores para los miembros DmaBufferSize y AllocationListSize para garantizar que:

  • El subsistema de gráficos de Microsoft DirectX solo puede usar un búfer de acceso directo a memoria (DMA) para mostrar (mediante la función DxgkDdiPresent del controlador de minipuerto de pantalla) al menos una estructura RECT para todos los escenarios.
  • Los tamaños de los búferes de lista de asignaciones y DMA son lo suficientemente grandes como para contener al menos un comando que no se puede dividir entre varios búferes.
  • Los tamaños de DMA y los búferes de lista de asignación son lo suficientemente grandes como para evitar la instalación y la sobrecarga de DMA.
El controlador de minipuerto de pantalla solo puede especificar segmentos de apertura en el miembro DmaBufferSegmentSet ; si el controlador especifica un segmento de memoria, se produce un error de creación de contexto.

Si el controlador establece DmaBufferSegmentSet en 0, el administrador de memoria de vídeo asigna memoria contigua con paged-locked, que se asigna a la memoria combinada de escritura, para los búferes DMA. Por lo tanto, la GPU debe acceder a los búferes DMA mediante ciclos PCI en equipos donde no se permiten transferencias de AGP fuera de la apertura de AGP.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista
Encabezado d3dkmddi.h (incluya D3dkmddi.h)

Consulte también

D3DDDI_PATCHLOCATIONLIST

DXGKARG_CREATECONTEXT

DXGKARG_PRESENT

DXGKARG_RENDER

DXGK_ALLOCATIONLIST

DXGK_CREATECONTEXTFLAGS

DxgkDdiPresent

DxgkDdiRender

RECT