Partilhar via


Definindo o tamanho e o passo da alocação de memória

Um driver de miniporte de ecrã que suporte a aceleração de hardware GDI deve definir o tamanho e a largura das alocações das memórias de sistema ou de vídeo durante o processamento das seguintes chamadas de alocação.

DxgkDdiCreateAllocation
Quando o driver processa uma chamada para DxgkDdiCreateAllocation, ele deve definir o tamanho, em bytes, do sistema ou alocação de memória de vídeo. O tamanho da alocação é definido através do pCreateAllocation ->pAllocationInfo->Size membro. Se a alocação for visível para a CPU, o tamanho deve incluir o valor de pitch, que é a largura da superfície, incluindo preenchimento, em bytes.

As alocações são visíveis para a CPU se o membro pGetStandardAllocationDriverData->pCreateGdiSurfaceData->Type estiver definido como D3DKMDT_GDISURFACE_STAGING_CPUVISIBLE ou D3DKMDT_GDISURFACE_EXISTINGSYSMEM. Para obter as propriedades desses tipos de superfície, consulte as descrições em D3DKMDT_GDISURFACETYPE.

DxgkDdiGetStandardAllocationDriverData
Quando o driver processa uma chamada para DxgkDdiGetStandardAllocationDriverData para uma alocação visível para a CPU, ele deve:

  1. Defina o membro pGetStandardAllocationDriverData do ->StandardAllocationType para D3DKMDT_STANDARDALLOCATION_GDISURFACE.

  2. Defina a descrição de uma superfície que pode ser usada para redirecionamento pelo GDI Hardware Acceleration e pelo Desktop Windows Manager (DWM) por meio da estrutura D3DKMDT_GDISURFACEDATA, que é apontada pelo membro pGetStandardAllocationDriverData->pCreateGdiSurfaceData. Por exemplo, defina o pitch da alocação usando o membro Pitch do D3DKMDT_GDISURFACEDATA.