Función NtGdiDdCreateSurface

[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.

Adjunta una superficie a otra superficie.

Sintaxis

DWORD APIENTRY NtGdiDdCreateSurface(
  _In_    HANDLE               hDirectDraw,
  _In_    HANDLE               *hSurface,
  _Inout_ DDSURFACEDESC        *puSurfaceDescription,
  _Inout_ DD_SURFACE_GLOBAL    *puSurfaceGlobalData,
  _Inout_ DD_SURFACE_LOCAL     *puSurfaceLocalData,
  _Inout_ DD_SURFACE_MORE      *puSurfaceMoreData,
  _Inout_ DD_CREATESURFACEDATA *puCreateSurfaceData,
  _Out_   HANDLE               *puhSurface
);

Parámetros

hDirectDraw [in]

Identificador de la estructura DD_DIRECTDRAW_GLOBAL que representa el controlador.

hSurface [in]

Identificador anterior a la misma superficie. Se usa si la superficie se vuelve a crear después de un modificador de modo.

puSurfaceDescription [in, out]

Puntero a la estructura DDSURFACEDESC que describe la superficie o el búfer que debe crear el controlador.

puSurfaceGlobalData [in, out]

Puntero a la estructura DD_SURFACE_GLOBAL que contiene datos de superficie que se comparten globalmente con varias superficies.

puSurfaceLocalData [in, out]

Puntero a una lista de DD_SURFACE_LOCAL estructuras que describen los objetos de superficie creados por el controlador.

puSurfaceMoreData [in, out]

Puntero a una estructura de DD_SURFACE_MORE que contiene datos de superficie locales adicionales.

puCreateSurfaceData [in, out]

Puntero a una estructura de DD_CREATESURFACEDATA que contiene la información necesaria para crear una superficie.

puhSurface [out]

La API de DirectDraw la usa y el controlador no debe rellenarlo.

Valor devuelto

NtGdiDdCreateSurface devuelve uno de los siguientes códigos de devolución de llamada.

Código devuelto Descripción
DDHAL_DRIVER_HANDLED
El controlador ha realizado la operación y ha devuelto un código de retorno válido para esa operación. Si este código es DD_OK, DirectDraw o Direct3D continúa con la función . De lo contrario, DirectDraw o Direct3D devuelven el código de error proporcionado por el controlador y anula la función.
DDHAL_DRIVER_NOTHANDLED
El controlador no tiene ningún comentario sobre la operación solicitada. Si es necesario que el controlador haya implementado una devolución de llamada determinada, DirectDraw o Direct3D notifican una condición de error. De lo contrario, DirectDraw o Direct3D controlan la operación como si no se hubiera definido la devolución de llamada del controlador mediante la ejecución de la implementación independiente del dispositivo de DirectDraw o Direct3D.

 

Comentarios

Se recomienda que la aplicación llame a IDirectDraw7::CreateSurface en lugar de usar esta función.

Al crear una cadena de superficies adjuntas, como una cadena de intercambio o una cadena o mapas mip, se debe llamar a NtGdiDdCreateSurfaceObject para cada superficie primero. A continuación, llame a NtGdiDdAttachSurface para adjuntarlos. Por último, llame a NtGdiDdCreateSurface para la primera superficie de la cadena solo. En este caso, hSurface sería el identificador devuelto por NtGdiDdCreateSurfaceObject para la primera superficie de la cadena.

Solo se debe llamar a NtGdiDdCreateSurface para crear superficies en memoria de vídeo local y no local. Nunca se debe llamar a para crear superficies de memoria del sistema. Para crear superficies de memoria del sistema, use NtGdiDdCreateSurfaceObject en su lugar.

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