Função NtGdiDdQueryDirectDrawObject

[Essa função está sujeita a alterações com cada revisão do sistema operacional. Em vez disso, use o DirectDraw e o Microsoft Direct3DAPIs; essas APIs isolam os aplicativos dessas alterações do sistema operacional e ocultam muitas outras dificuldades envolvidas na interação diretamente com drivers de exibição.]

Consulta uma representação de modo kernel criada anteriormente de um objeto Microsoft DirectDraw para seus recursos.

Sintaxe

BOOL APIENTRY NtGdiDdQueryDirectDrawObject(
  _In_  HANDLE                      hDirectDrawLocal,
  _Out_ DD_HALINFO                  *pHalInfo,
        DWORD                       *pCallBackFlags,
  _Out_ LPD3DNTHAL_CALLBACKS        puD3dCallbacks,
  _Out_ LPD3DNTHAL_GLOBALDRIVERDATA puD3dDriverData,
  _Out_ PDD_D3DBUFCALLBACKS         puD3dBufferCallbacks,
  _Out_ LPDDSURFACEDESC             puD3dTextureFormats,
  _Out_ DWORD                       *puNumHeaps,
  _Out_ VIDEOMEMORY                 *puvmList,
  _Out_ DWORD                       *puNumFourCC,
  _Out_ DWORD                       *puFourCC
);

Parâmetros

hDirectDrawLocal [in]

Identificador para o dispositivo DirectDraw do modo kernel criado anteriormente.

pHalInfo [out]

Ponteiro para uma estrutura de DD_HALINFO que será preenchida com os recursos do dispositivo. Confira a documentação do DDK para obter detalhes.

pCallBackFlags

Ponteiro para um buffer fornecido pelo chamador que armazena sinalizadores de retorno de chamada relatados pelo driver. O buffer deve ter o tamanho 3*sizeof(DWORD) e armazenar sinalizadores de retorno de chamada na seguinte ordem: pCallBackFlags[0] para sinalizadores no DD_CALLBACKS, pCallBackFlags[1] para sinalizadores no DD_SURFACECALLBACKS e pCallBackFlags[2] para sinalizadores em DD_PALETTECALLBACKS. Confira a documentação do DDK para obter detalhes.

puD3dCallbacks [out]

Ponteiro para uma tabela de ponteiros de retorno de chamada direct3D. A tabela é preenchida com ponteiros para funções dentro de Gdi32.dll que imitam um driver de exibição Direct3D. Essa tabela de retorno de chamada é idêntica à estrutura D3DHAL_D3DCALLBACKS discutida na documentação do DDK.

puD3dDriverData [out]

Ponteiro para D3DHAL_GLOBALDRIVERDATA dados, conforme descrito na documentação do DDK.

puD3dBufferCallbacks [out]

Ponteiro para uma tabela de ponteiros de retorno de chamada. A tabela é preenchida com ponteiros para funções dentro de Gdi32.dll que imitam um driver de exibição Direct3D. Essa tabela de retorno de chamada é idêntica à estrutura de DDHAL_DDEXEBUFCALLBACKS, que é mapeada para a estrutura DD_D3DBUFCALLBACKS discutida na documentação do DDK, exceto que os membros XxxD3DBuffer em DD_D3DBUFCALLBACKS são substituídos por XxxExecuteBuffer em DDHAL_DDEXEBUFCALLBACKS.

puD3dTextureFormats [out]

Ponteiro para uma matriz de estruturas DDSURFACEDESC que definem o conjunto de formatos de textura permitidos.

puNumHeaps [out]

Ponteiro para o membro dwNumHeaps do DD_HALINFO. vmiData. O membro dwNumHeaps especifica o número de heaps de memória em puvmList. Confira a documentação do DDK para obter detalhes.

puvmList [out]

Ponteiro para uma lista de descritores de heap de memória de vídeo. Pode ser NULL. Esse parâmetro não é usado porque o gerenciamento de memória de vídeo é tratado inteiramente no modo kernel.

puNumFourCC [out]

Ponteiro para o membro puNumFourCCCodes do DD_HALINFO. ddCaps. O membro puNumFourCCCodes especifica o número de códigos four-character codes (FOURCC) aos quais o driver dá suporte. Confira a documentação do DDK para obter detalhes.

puFourCC [out]

Ponteiro para uma lista de formatos de superfície four-character codes (FOURCC) com suporte. Pode ser NULL.

Retornar valor

Se tiver êxito, essa função retornará TRUE; caso contrário, retornará FALSE.

Comentários

Uma chamada para essa função foi projetada para ser feita em um processo de duas etapas. Na primeira etapa, puFourCC, puvmList e puD3dTextureFormats devem ser NULL e DdQueryDirectDrawObject preencherá DD_HALINFO. ddCaps. dwNumFourCCCodes, DD_HALINFO. vmiData. dwNumHeaps e D3DHAL_GLOBALDRIVERDATA. dwNumTextureFormats com o número de entradas que devem ser retornadas. Na segunda chamada, o chamador deve alocar matrizes do tamanho indicado e passar esses ponteiros em vez de valores NULL nos parâmetros puFourCC, puvmList e puD3dTextureFormats . Em seguida, as matrizes serão preenchidas com os dados apropriados.

Os aplicativos são aconselhados a usar as APIs DirectDraw e Direct3D para criar e gerenciar objetos de dispositivo gráfico. Essas construções abstraem o processo de criação do dispositivo de maneira simplificada e independente do sistema operacional.

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte
Windows 2000 Server [somente aplicativos da área de trabalho]
Cabeçalho
Ntgdi.h

Confira também

Suporte ao cliente de baixo nível de gráficos

DdQueryDirectDrawObject

NtGdiDdCreateDirectDrawObject