Compartir a través de


Función NtGdiDdQueryDirectDrawObject

[Esta función está sujeta a cambios con cada revisión del sistema operativo. En su lugar, use DirectDraw y Microsoft Direct3DAPIs; estas API aíslan las aplicaciones de estos cambios en el sistema operativo y ocultan muchas otras dificultades implicadas en la interacción directa con los controladores de pantalla.

Consulta una representación en modo kernel creada anteriormente de un objeto De Microsoft DirectDraw para sus funcionalidades.

Sintaxis

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]

Controle el dispositivo DirectDraw en modo kernel creado anteriormente.

pHalInfo [out]

Puntero a una estructura de DD_HALINFO que se rellenará con las funcionalidades del dispositivo. Consulte la documentación de DDK para obtener más información.

pCallBackFlags

Puntero a un búfer proporcionado por el autor de la llamada que almacena las marcas de devolución de llamada notificadas por el controlador. El búfer debe tener un tamaño de 3*sizeof(DWORD) y almacena las marcas de devolución de llamada en el orden siguiente: pCallBackFlags[0] para las marcas de DD_CALLBACKS, pCallBackFlags[1] para las marcas en DD_SURFACECALLBACKS y pCallBackFlags[2] para las marcas de DD_PALETTECALLBACKS. Consulte la documentación de DDK para obtener más información.

puD3dCallbacks [out]

Puntero a una tabla de punteros de devolución de llamada de Direct3D. La tabla se rellena con punteros a funciones dentro de Gdi32.dll que imitan un controlador de pantalla direct3D. Esta tabla de devolución de llamada es idéntica a la estructura de D3DHAL_D3DCALLBACKS que se describe en la documentación de DDK.

puD3dDriverData [out]

Puntero a D3DHAL_GLOBALDRIVERDATA datos, como se describe en la documentación de DDK.

puD3dBufferCallbacks [out]

Puntero a una tabla de punteros de devolución de llamada. La tabla se rellena con punteros a funciones dentro de Gdi32.dll que imitan un controlador de pantalla direct3D. Esta tabla de devolución de llamada es idéntica a la estructura DDHAL_DDEXEBUFCALLBACKS, que se asigna a la estructura de DD_D3DBUFCALLBACKS descrita en la documentación de DDK, excepto que los miembros XxxD3DBuffer de DD_D3DBUFCALLBACKS se reemplazan por XxxExecuteBuffer en DDHAL_DDEXEBUFCALLBACKS.

puD3dTextureFormats [out]

Puntero a una matriz de estructuras DDSURFACEDESC que definen el conjunto de formatos de textura permitidos.

puNumHeaps [out]

Puntero al miembro dwNumHeaps de DD_HALINFO. vmiData. El miembro dwNumHeaps especifica el número de montones de memoria en puvmList. Consulte la documentación de DDK para obtener más información.

puvmList [out]

Puntero a una lista de descriptores de montón de memoria de vídeo. Puede ser NULL. Este parámetro no se usa porque la administración de memoria de vídeo se controla completamente dentro del modo kernel.

puNumFourCC [out]

Puntero al miembro puNumFourCCCodes de DD_HALINFO. ddCaps. El miembro puNumFourCCCodes especifica el número de códigos de cuatro caracteres (FOURCC) que admite el controlador. Consulte la documentación de DDK para obtener más información.

puFourCC [out]

Puntero a una lista de los formatos de superficie de cuatro caracteres admitidos (FOURCC ). Puede ser NULL.

Valor devuelto

Si se ejecuta correctamente, esta función devuelve TRUE; de lo contrario, devuelve FALSE.

Comentarios

Una llamada a esta función está diseñada para realizarse en un proceso de dos pasos. En el primer paso, puFourCC, puvmList y puD3dTextureFormats deben ser NULL y DdQueryDirectDrawObject rellenará DD_HALINFO. ddCaps. dwNumFourCCCodes, DD_HALINFO. vmiData. dwNumHeaps y D3DHAL_GLOBALDRIVERDATA. dwNumTextureFormats con el número de entradas que se van a devolver. En la segunda llamada, el llamador debe asignar matrices del tamaño indicado y pasar esos punteros en lugar de valores NULL en los parámetros puFourCC, puvmList y puD3dTextureFormats . A continuación, las matrices se rellenarán con los datos adecuados.

Se recomienda a las aplicaciones usar las API de DirectDraw y Direct3D para crear y administrar objetos de dispositivo gráficos. Estas construcciones abstraen el proceso de creación de dispositivos de forma simplificada e independiente del sistema operativo.

Requisitos

Requisito Value
Cliente mínimo compatible
Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible
Windows 2000 Server [solo aplicaciones de escritorio]
Encabezado
Ntgdi.h

Consulte también

Compatibilidad con clientes de bajo nivel de gráficos

DdQueryDirectDrawObject

NtGdiDdCreateDirectDrawObject