Compartir a través de


estructura DXGKARG_PRESENT (d3dkmddi.h)

La estructura de DXGKARG_PRESENT describe una operación de copia de origen a principal.

Sintaxis

typedef struct _DXGKARG_PRESENT {
  [out]    VOID                     *pDmaBuffer;
  [in]     UINT                     DmaSize;
  [in]     VOID                     *pDmaBufferPrivateData;
  [in]     UINT                     DmaBufferPrivateDataSize;
  union {
    [in]     DXGK_ALLOCATIONLIST               *pAllocationList;
    [in]     DXGK_PRESENTALLOCATIONINFO        *pAllocationInfo;
    [in]     DXGK_PRESENTMULTIPLANEOVERLAYINFO *pPresentMultiPlaneOverlayInfo;
  };
#if ...
  [in/out] D3DDDI_PATCHLOCATIONLIST *pPatchLocationListOut;
#if ...
  [in]     UINT                     PatchLocationListOutSize;
  [in]     DXGK_ALLOCATIONLIST      *pAllocationList;
#else
  [in/out] D3DDDI_PATCHLOCATIONLIST *pPatchLocationListOut;
#endif
#else
  [in]     UINT                     PatchLocationListOutSize;
#endif
  [in/out] UINT                     MultipassOffset;
  [in]     UINT                     Color;
  [in]     RECT                     DstRect;
  [in]     RECT                     SrcRect;
  [in]     UINT                     SubRectCnt;
  [in]     const RECT               *pDstSubRects;
  [in]     D3DDDI_FLIPINTERVAL_TYPE FlipInterval;
  [in]     DXGK_PRESENTFLAGS        Flags;
  [in]     UINT                     DmaBufferSegmentId;
  [in]     PHYSICAL_ADDRESS         DmaBufferPhysicalAddress;
  [in]     UINT                     Reserved;
           D3DGPU_VIRTUAL_ADDRESS   DmaBufferGpuVirtualAddress;
           UINT                     NumSrcAllocations;
           UINT                     NumDstAllocations;
           UINT                     PrivateDriverDataSize;
           PVOID                    pPrivateDriverData;
} DXGKARG_PRESENT;

Miembros

[out] pDmaBuffer

Puntero al inicio del búfer 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 la función DxgkDdiPresent , el controlador debe establecer pDmaBuffer en el siguiente byte vacío que sigue al último byte en el 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 está asociada al 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 a para la operación actual.

[in] pAllocationList

Matriz de estructuras de DXGK_ALLOCATIONLIST que describen el origen, el destino o ambos para la operación de copia. El controlador accede al identificador de asignación de origen a través del miembro hDeviceSpecificAllocation del elemento pAllocationList[DXGK_PRESENT_SOURCE_INDEX] (es decir, elemento 1). El controlador accede al identificador de asignación de destino a través del miembro hDeviceSpecificAllocation del elemento pAllocationList[DXGK_PRESENT_DESTINATION_INDEX] (es decir, elemento 2).

Los identificadores especificados en los elementos de la lista de asignación son los identificadores específicos del dispositivo que devuelve la función DxgkDdiOpenAllocation del controlador cuando se abrieron las asignaciones. Si un origen o destino no está presente para la operación, el miembro hDeviceSpecificAllocation del elemento respectivo es NULL. Este miembro está disponible a partir de Windows 7.

Nota

El miembro hDeviceSpecificAllocation del primer elemento de la lista de asignación (elemento 0) siempre es NULL.

[in] pAllocationInfo

Reservado para uso del sistema. El controlador de minipuerto de pantalla debe ignorar este miembro. Este miembro está disponible a partir de Windows 7.

[in] pPresentMultiPlaneOverlayInfo

Puntero a una estructura de tipo DXGK_PRESENTMULTIPLANEOVERLAYINFO que especifica información sobre una entrada VidPN y un plano de superposición que se va a mostrar.

Se admite a partir de Windows 8.

[in/out] pPatchLocationListOut

Matriz de estructuras de D3DDDI_PATCHLOCATIONLIST para la lista de ubicaciones de revisión que rellena el controlador de miniporte para mostrar. Antes de que el controlador vuelva de una llamada a su función DxgkDdiPresent , el controlador debe establecer pPatchLocationListOut en el siguiente elemento D3DDDI_PATCHLOCATIONLIST que sigue al último elemento 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 miniporte 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 copia si la función DxgkDdiPresent del controlador de miniporte para mostrar debe devolver STATUS_GRAPHICS_INSUFFICIENT_DMA_BUFFER para obtener un nuevo búfer DMA. Cuando se llama primero a la función DxgkDdiPresent del controlador con una nueva lista RECT , MultipassOffset se inicializa en cero. Antes de que el controlador vuelva desde la llamada dxgkDdiPresent , el controlador establece MultipassOffset para mostrar el progreso de la copia para las llamadas de DxgkDdiPresent posteriores con el mismo búfer de comandos. El subsistema del kernel de gráficos de Microsoft DirectX no cambia aún más el valor.

[in] Color

El color A8R8G8B8 en una operación de relleno de color, que se especifica mediante la marca de campo de bits ColorFill establecida en el miembro Flags o una operación de clave de color, que se especifica mediante la marca de campo de bits SrcColorKey o DstColorKey . Tenga en cuenta que solo se establece una de las marcas de campo de bits ColorFill, SrcColorKey y DstColorKey en cualquier momento.

Si el formato principal es RGB pálido, Color contiene el índice de paleta en lugar del valor D3DDDIFMT_A8R8G8B8 del tipo de enumeración D3DDDIFORMAT .

[in] DstRect

Estructura RECT para el rectángulo de destino que se usa para calcular el factor de extensión.

[in] SrcRect

Estructura RECT para el rectángulo de origen que se usa para calcular el factor de extensión.

[in] SubRectCnt

Número de subctángulos de destino en la matriz que pDstSubRects especifica.

[in] pDstSubRects

Matriz de estructuras RECT para la lista de subrecursos de destino en los que se copia la función DxgkDdiPresent .

[in] FlipInterval

Valor con tipo D3DDDI_FLIPINTERVAL_TYPE que indica el intervalo de volteo (es decir, si el volteo se produce después de cero, uno, dos, tres o cuatro sincronizaciones verticales).

[in] Flags

Estructura DXGK_PRESENTFLAGS que identifica, en marcas de campo de bits, el tipo de operación presente que se va a realizar. Tenga en cuenta que las marcas de campo de bits ColorFill, SrcColorKey y DstColorKey en Flags son mutuamente excluyentes.

[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 PHYSICAL_ADDRESS tipo de datos (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.

[in] Reserved

Reservado para uso del sistema. El controlador debe omitir este miembro.

DmaBufferGpuVirtualAddress

Un D3DGPU_VIRTUAL_ADDRESS tipo de datos que indica la dirección virtual 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.

NumSrcAllocations

Número de asignaciones de contexto en el origen.

NumDstAllocations

Número de asignaciones de contexto en el destino.

PrivateDriverDataSize

Tamaño de pPrivateDriverData.

pPrivateDriverData

Puntero a un búfer que contiene datos opcionales del controlador privado.

Comentarios

La proporción de las áreas rectangulares de origen y destino que los miembros SrcRect y DstRect especifican se usan para calcular un factor extendido. El controlador puede tener en cuenta el cálculo del factor extendido cuando realiza la operación de copia.

El controlador no es necesario para realizar ningún recorte. El subsistema del kernel de gráficos de Microsoft DirectX preclips la lista de subctángulos de destino que el miembro pDstSubRects especifica para las coordenadas del rectángulo de destino que el miembro DstRect especifica y para la pantalla (principal). Tenga en cuenta que si se proporciona una lista de subctángulos de destino en pDstSubRects, el controlador solo debe usar SrcRect y DstRect para calcular el factor de extensión y debe usar las coordenadas de los subctángulos de destino para la operación de copia real.

Requisitos

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

Consulte también

D3DDDI_FLIPINTERVAL_TYPE

D3DDDI_PATCHLOCATIONLIST

DXGK_ALLOCATIONLIST

DXGK_PRESENTFLAGS

DXGK_PRESENTMULTIPLANEOVERLAYINFO

DxgkDdiPresent

RECT