Compartir a través de


estructura DXGKARG_RENDER (d3dkmddi.h)

La estructura DXGKARG_RENDER describe los miembros para generar un búfer de acceso directo a memoria (DMA) desde un búfer de comandos.

Sintaxis

typedef struct _DXGKARG_RENDER {
  [in]     const VOID               *pCommand;
  [in]     UINT                     CommandLength;
  [out]    VOID                     *pDmaBuffer;
  [in]     UINT                     DmaSize;
  [in]     VOID                     *pDmaBufferPrivateData;
  [in]     UINT                     DmaBufferPrivateDataSize;
  [in]     DXGK_ALLOCATIONLIST      *pAllocationList;
  [in]     UINT                     AllocationListSize;
  [in]     D3DDDI_PATCHLOCATIONLIST *pPatchLocationListIn;
  [in]     UINT                     PatchLocationListInSize;
  [in/out] D3DDDI_PATCHLOCATIONLIST *pPatchLocationListOut;
  [in]     UINT                     PatchLocationListOutSize;
  [in/out] UINT                     MultipassOffset;
  [in]     UINT                     DmaBufferSegmentId;
  [in]     PHYSICAL_ADDRESS         DmaBufferPhysicalAddress;
} DXGKARG_RENDER;

Miembros

[in] pCommand

Puntero al inicio del búfer de comandos.

Nota Cuando se llama a DxgkDdiRender , el controlador de minipuerto de pantalla debe validar el búfer. Consulta Comentarios en DxgkDdiRender para obtener información importante sobre cómo el controlador debe acceder a este miembro.
 

[in] CommandLength

Tamaño, en bytes, del búfer de comandos al que apunta pCommand .

[out] pDmaBuffer

Puntero al inicio del búfer de DMA, que se alinea en 4 KB. Este búfer se puede enviar a través de DMA al hardware gráfico. Antes de que el controlador de miniporte de pantalla vuelva de las funciones DxgkDdiRender o DxgkDdiRenderKm , el controlador debe establecer pDmaBuffer en el siguiente byte vacío que sigue al último byte que escribió el controlador o el controlador debe apuntar a la ubicación (un byte más allá del espacio de búfer) si no hay más espacio disponible. Esta ubicación habría sido correcta si el búfer era lo suficientemente grande.

[in] DmaSize

Tamaño, en bytes, del búfer DMA al que apunta pDmaBuffer .

[in] pDmaBufferPrivateData

Puntero a una estructura de datos privada residente en controladores que se usa para generar el búfer DMA al que apunta pDmaBuffer .

[in] DmaBufferPrivateDataSize

Número de bytes que permanecen en la estructura de datos privada a la que pDmaBufferPrivateData apunta para la operación actual.

[in] pAllocationList

Matriz de estructuras de DXGK_ALLOCATIONLIST para la lista de asignaciones a las que hace referencia el búfer DMA. Cada asignación a la que se hace referencia debe aparecer una vez para obtener un rendimiento óptimo.

[in] AllocationListSize

El número disponible de elementos de la matriz que pAllocationList especifica, que representa el número de especificaciones de asignación que se van a enviar a través de DMA al hardware gráfico.

[in] pPatchLocationListIn

Matriz de estructuras de D3DDDI_PATCHLOCATIONLIST para la lista de ubicaciones de revisión que proporciona el controlador de pantalla en modo de usuario en una llamada a la función pfnRenderCb .

Nota Cuando se llama a DxgkDdiRender , el controlador de minipuerto de pantalla debe validar el búfer. Consulta Comentarios en DxgkDdiRender para obtener información importante sobre cómo el controlador debe acceder a este miembro.
 

[in] PatchLocationListInSize

Número de elementos de la lista de ubicación de revisión que pPatchLocationListIn especifica.

[in/out] pPatchLocationListOut

Matriz de estructuras de D3DDDI_PATCHLOCATIONLIST para la lista de ubicaciones de revisión que rellena el controlador de miniporte de pantalla. Antes de que el controlador vuelva de una llamada a sus funciones DxgkDdiRender o DxgkDdiRenderKm , el controlador debe establecer pPatchLocationListOut en el siguiente elemento de D3DDDI_PATCHLOCATIONLIST que sigue al último elemento de D3DDDI_PATCHLOCATIONLIST que el controlador actualizó.

[in] PatchLocationListOutSize

Número de elementos de la lista de ubicación de revisión que pPatchLocationListOut especifica. El controlador de minipuerto de pantalla no es necesario para rellenar todos los elementos de toda la lista; El controlador debe usar solo los elementos necesarios para describir la ubicación de revisión dentro del búfer DMA.

[in/out] MultipassOffset

Valor UINT que especifica el progreso de la operación de representación si las funciones DxgkDdiRender o DxgkDdiRenderKm del controlador de minipuerto de pantalla deben devolver STATUS_GRAPHICS_INSUFFICIENT_DMA_BUFFER para obtener un nuevo búfer DMA. Cuando la función DxgkDdiRender o DxgkDdiRenderKm del controlador se llama primero con un nuevo búfer de comandos, MultipassOffset se inicializa en cero. Antes de que el controlador vuelva de las llamadas DxgkDdiRender o DxgkDdiRenderKm , el controlador establece este miembro para mostrar el progreso de la traducción para la llamada a DxgkDdiRender o DxgkDdiRenderKm con el mismo búfer de comandos. El subsistema del kernel de gráficos de DirectX no cambia aún más el valor.

[in] DmaBufferSegmentId

Identificador del segmento de memoria en el que se pagina el búfer DMA. Si el identificador es cero, el búfer DMA no se pagina correctamente.

[in] DmaBufferPhysicalAddress

Un tipo de datos PHYSICAL_ADDRESS (que se define como LARGE_INTEGER) que indica la dirección física en la que se pagina el búfer DMA. Si la dirección física es cero, el búfer DMA no se pagina correctamente.

Comentarios

La compatibilidad con la función DxgkDdiRenderKm se agrega a partir de Windows 7 para adaptadores de pantalla que admiten aceleración de hardware GDI.

Requisitos

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

Consulte también

D3DDDI_PATCHLOCATIONLIST

DXGK_ALLOCATIONLIST

DxgkDdiRender

DxgkDdiRenderKm

pfnRenderCb