estructura DXGK_BUILDPAGINGBUFFER_UPDATEPAGETABLE (d3dkmddi.h)

DXGK_BUILDPAGINGBUFFER_UPDATEPAGETABLE se usa como parte de una operación de actualización de tabla de páginas.

Sintaxis

typedef struct _DXGK_BUILDPAGINGBUFFER_UPDATEPAGETABLE {
  UINT                        PageTableLevel;
  HANDLE                      hAllocation;
  DXGK_PAGETABLEUPDATEADDRESS PageTableAddress;
  DXGK_PTE                    *pPageTableEntries;
  UINT                        StartIndex;
  UINT                        NumPageTableEntries;
  UINT                        Reserved0;
  DXGK_UPDATEPAGETABLEFLAGS   Flags;
  UINT64                      DriverProtection;
  UINT64                      AllocationOffsetInBytes;
  HANDLE                      hProcess;
  DXGK_PAGETABLEUPDATEMODE    UpdateMode;
  DXGK_PTE                    *pPageTableEntries64KB;
  D3DGPU_VIRTUAL_ADDRESS      FirstPteVirtualAddress;
} DXGK_BUILDPAGINGBUFFER_UPDATEPAGETABLE;

Miembros

PageTableLevel

Nivel de una tabla de páginas, que se actualiza.

hAllocation

Identificador del controlador de modo kernel de una asignación, que se asigna mediante las entradas de la tabla de páginas. El controlador de modo kernel devuelve el identificador de DxgkDdiCreateAllocation. El identificador puede ser NULL para las asignaciones, que no tienen un identificador de controlador del modo kernel (tablas de páginas, directorios de página, etc.).

PageTableAddress

Dirección de la tabla de páginas que se va a actualizar. Si DXGK_VIRTUALADDRESSCAPS:: PageTableUpdateMode es DXGK_PAGETABLEUPDATE_CPU_VIRTUAL, la dirección virtual de CPU se encuentra en el campo CpuVirtual . Si DXGK_VIRTUALADDRESSCAPS:: PageTableUpdateMode es DXGK_PAGETABLEUPDATE_GPU_VIRTUAL, la dirección virtual de GPU se encuentra en el campo GpuVirtual . Si DXGK_VIRTUALADDRESSCAPS:: PageTableUpdateMode es DXGK_PAGETABLEUPDATE_GPU_PHYSICAL, la dirección física de la GPU se encuentra en el campo GpuPhysical .

pPageTableEntries

Las entradas que deben copiarse. El índice cero de la matriz pPageTableEntries corresponde a startIndex en la matriz de entrada de la tabla de páginas del controlador.

StartIndex

Índice inicial de una entrada de tabla de páginas dentro de la tabla de páginas donde se deben copiar las entradas. El índice de matriz de entrada de tabla de páginas se basa en cero.

NumPageTableEntries

Número de entradas que se deben copiar.

Reserved0

Este miembro está reservado y debe establecerse en cero.

Flags

DXGK_UPDATEPAGETABLEFLAGS estructura que describe la operación de actualización.

DriverProtection

Pasado por UMD en MapGpuVirtualAddressRangeCb.

AllocationOffsetInBytes

Cuando hAllocation no es NULL, este campo especifica el desplazamiento relativo, en bytes, desde el principio de la asignación a la primera página a la que se dirige esta operación de actualización. Si la actualización tiene como destino varias páginas de hAllocation, se garantiza que esas páginas sean secuenciales. Por ejemplo, el administrador de memoria de vídeo puede estar actualizando una dirección virtual de GPU a la página 4,5,6,7 en hAllocation. Nunca habrá un caso en el que un controlador vea una única operación de actualización que tenga como destino páginas no secuenciales (por ejemplo, 4,5,7). Tenga en cuenta que, aunque se garantiza que las páginas sean secuenciales desde el punto de vista de la asignación, es posible que no sean físicamente contiguos en la memoria.

hProcess

Identificador de proceso del controlador del modo kernel para el proceso cuyas entradas de tabla de páginas se actualizan. Este es el valor devuelto por DxgkDdiCreateProcess.

UpdateMode

Define el significado de PageTableAddress. Al inicializar tablas de páginas para el proceso de paginación, el modo de actualización siempre se DXGK_PAGETABLEUPDATE_CPU_VIRTUAL y pDmaBuffer se establece en NULL. En este caso, el controlador debe actualizar las tablas de páginas inmediatamente. En otros casos , UpdateMode se establece en el valor , que se especifica en DXGK_VIRTUALADDRESSCAPS::GpuMmu.PageTableUpdateMode.

Al actualizar las entradas de la tabla de páginas de una tabla de páginas hoja, el administrador de memoria de vídeo asume que cada entrada cubre una página de 4 KB. Si una página de GPU es mayor (4 KB * 2n), el administrador de memoria de vídeo proporcionará entradas en la matriz, que apuntan dentro de las páginas de GPU. Es posible que el controlador de modo kernel solo necesite inicializar entradas de tabla de páginas, que apuntan al principio de las páginas de GPU. En la ilustración siguiente se muestra este caso cuando la página de GPU es de 16 KB.

pPageTableEntries64KB

Las entradas que deben copiarse de las tablas de páginas de 64 KB. El índice cero de la matriz pPageTableEntries corresponde a startIndex en la matriz de entrada de la tabla de páginas del controlador. La matriz solo debe usarse cuando se establece el límite DXGK_GPUMMUCAPS::D ualPteSupported .

FirstPteVirtualAddress

La dirección virtual de GPU asignada por la primera entrada de tabla de página actualizada.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 10
Servidor mínimo compatible Windows Server 2016
Encabezado d3dkmddi.h (incluya D3dkmddi.h)