A enumeração D3DKMDT_GDISURFACETYPE indica o tipo de superfície bloqueável usada pelo DWM (Gerenciador de Janelas da Área de Trabalho) para redirecionamento.
D3DKMDT_GDISURFACE_INVALID O driver não deve ver esse valor.
D3DKMDT_GDISURFACE_TEXTURE Indica que a superfície tem as seguintes propriedades:
Ele tem uma textura de um nível.
Ele não é visível para a CPU e o gerenciador de memória de vídeo o criará como uma superfície compartilhada.
Ele é aberto por um driver de modo de usuário e usado como uma textura durante a composição do DWM.
Ele é usado por um driver de modo de usuário como um destino de renderização para a renderização do DirectX.
Ele é usado como uma superfície de origem ou destino em operações aceleradas por hardware GDI.
D3DKMDT_GDISURFACE_STAGING_CPUVISIBLE Indica que a superfície tem as seguintes propriedades:
Ele é visível para a CPU e será amplamente usado pela CPU. A alocação deve ser um formato linear e em um segmento de abertura de GPU coerente com cache.
Ele é usado como uma superfície de origem em operações aceleradas por hardware GDI.
Ele é usado como uma superfície de destino em operações GDI bitblt (somente cópia).
Seu pitch deve ser retornado pelo driver de miniporto de exibição.
Seu valor de tom e o endereço de superfície devem ser alinhados ao valor do membro AlignmentShift da estrutura de DXGK_PRESENTATIONCAPS (ou seja, DXGK_DRIVERCAPS->PresentationCaps.AlignmentShift).
D3DKMDT_GDISURFACE_STAGING Indica que a superfície tem as seguintes propriedades:
Não está visível para a CPU.
Ele é usado como uma superfície de origem ou destino em operações aceleradas por hardware GDI.
Ele é usado como uma superfície de origem ou destino em operações de bitblt GDI (somente cópia).
D3DKMDT_GDISURFACE_LOOKUPTABLE Indica que a superfície tem as seguintes propriedades:
Não está visível para a CPU.
Ele é usado somente durante o processamento de comandos especificados pelo ClearTypeBlend e OpCode. DXGK_GDIOP_BITBLT membros (somente cópia) da estrutura DXGK_RENDERKM_COMMAND.
O formato é definido pelo valor D3DDDIFMT_A8 da enumeração D3DDDIFORMAT.
A alocação de pesquisa gama é criada uma vez e nunca é alterada depois de inicializada. A alocação é inicializada no formato D3DDDIFMT_A8 emitindo um comando DXGK_RENDERKM_COMMAND->Opcode.DXGK_GDIOP_BITBLT de uma superfície de D3DKMDT_GDISURFACE_STAGING_CPUVISIBLE.
D3DKMDT_GDISURFACE_EXISTINGSYSMEM Indica que a superfície tem as seguintes propriedades:
Ele é visível para a CPU. A alocação deve ser um formato linear e em um segmento de abertura de GPU coerente com cache.
Seu valor de tom e o endereço de superfície devem ser alinhados ao valor do membro AlignmentShift da estrutura de DXGK_PRESENTATIONCAPS (ou seja, DXGK_DRIVERCAPS->PresentationCaps.AlignmentShift).
O endereço de superfície é passado para o driver.
Esse valor é usado da mesma forma que o valor D3DKMDT_GDISURFACE_STAGING_CPUVISIBLE.
D3DKMDT_GDISURFACE_TEXTURE_CPUVISIBLE Reservado para uso do sistema. Não use esse valor em seu driver.
Com suporte a partir do Windows 8.
D3DKMDT_GDISURFACE_TEXTURE_CROSSADAPTER Indica que a superfície tem as seguintes propriedades:
Ele não é visível para a CPU e o gerenciador de memória de vídeo o criará como uma superfície de adaptador cruzado compartilhado.
Seu pitch deve ser retornado pelo driver de miniporto de exibição no membro do Pitch da estrutura D3DKMDT_GDISURFACEDATA.
O tom e a altura devem ter o alinhamento necessário para o recurso de adaptador cruzado. Você pode usar as constantes D3DKMT_CROSS_ADAPTER_RESOURCE_PITCH_ALIGNMENT e D3DKMT_CROSS_ADAPTER_RESOURCE_HEIGHT_ALIGNMENT para validar se o driver retorna o tom e a altura corretos para o recurso de adaptador cruzado. Essas constantes são definidas em D3dukmdt.h.
Com suporte a partir do Windows 8.1.
D3DKMDT_GDISURFACE_TEXTURE_CPUVISIBLE_CROSSADAPTER Reservado para uso do sistema. Não use esse valor em seu driver.