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.
[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 .
[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) |