Función DdQueryDirectDrawObject (ddrawgdi.h)

[Esta función está sujeta a cambios con cada revisión del sistema operativo. En su lugar, use Microsoft 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.

Contenedor para la función NtGdiDdQueryDirectDrawObject y consulta una representación en modo kernel creada previamente para las funcionalidades.

GdiEntry2 se define como alias para esta función.

Sintaxis

BOOL DdQueryDirectDrawObject(
  LPDDRAWI_DIRECTDRAW_GBL    pDirectDrawGlobal,
  LPDDHALINFO                pHalInfo,
  LPDDHAL_DDCALLBACKS        pDDCallbacks,
  LPDDHAL_DDSURFACECALLBACKS pDDSurfaceCallbacks,
  LPDDHAL_DDPALETTECALLBACKS pDDPaletteCallbacks,
  LPD3DHAL_CALLBACKS         pD3dCallbacks,
  LPD3DHAL_GLOBALDRIVERDATA  pD3dDriverData,
  LPDDHAL_DDEXEBUFCALLBACKS  pD3dBufferCallbacks,
  LPDDSURFACEDESC            pD3dTextureFormats,
  LPDWORD                    pdwFourCC,
  LPVIDMEM                   pvmList
);

Parámetros

pDirectDrawGlobal

Puntero a un objeto DirectDraw en modo de usuario para el que se creó previamente un objeto del lado kernel con DdCreateDirectDrawObject.

pHalInfo

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

pDDCallbacks

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 de DirectDraw. Esta tabla de devolución de llamada es idéntica a la estructura de DDHAL_DDCALLBACKS, que se asigna a la estructura de DD_CALLBACKS que se describe en la documentación de DDK.

pDDSurfaceCallbacks

Puntero a una tabla de punteros de devolución de llamada de superficie. La tabla se rellena con punteros a funciones dentro de Gdi32.dll que imitan un controlador de pantalla de DirectDraw. Esta tabla de devolución de llamada es idéntica a la estructura de DDHAL_DDSURFACECALLBACKS, que se asigna a la estructura de DD_SURFACECALLBACKS que se describe en la documentación de DDK.

pDDPaletteCallbacks

Puntero a una tabla de punteros de devolución de llamada de paleta. La tabla se rellena con punteros a funciones dentro de Gdi32.dll que imitan un controlador de pantalla de DirectDraw. Esta tabla de devolución de llamada es idéntica a la estructura de DDHAL_DDPALETTECALLBACKS, que se asigna a la estructura de DD_PALETTECALLBACKS que se describe en la documentación de DDK.

pD3dCallbacks

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 a un controlador de pantalla direct3D. Esta tabla de devolución de llamada es idéntica a la estructura de D3DHAL_CALLBACKS que se describe en la documentación de DDK.

pD3dDriverData

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

pD3dBufferCallbacks

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 a un controlador de pantalla direct3D. Esta tabla de devolución de llamada es idéntica a la estructura de 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.

pD3dTextureFormats

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

pdwFourCC

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

pvmList

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.

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, pdwFourCC, pvmList y pD3dTextureFormats deben ser NULL y DdQueryDirectDrawObject rellenará DDHALINFO. ddCaps. dwNumFourCCCodes, DDHALINFO. vmiData. dwNumHeaps y D3DHAL_GLOBALDRIVERDATA. dwNumTextureFormats con el número de entradas que se van a devolver. En la segunda llamada, el autor de la llamada debe asignar matrices del tamaño indicado y pasar esos punteros en lugar de valores NULL en los parámetros pdwFourCC, pvmList y pD3dTextureFormats . A continuación, las matrices se rellenarán con los datos adecuados.

Se recomienda que las aplicaciones usen 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]
Plataforma de destino Windows
Encabezado ddrawgdi.h

Consulte también

Compatibilidad con clientes de bajo nivel de gráficos