Función DrvEnableSurface (winddi.h)

La función DrvEnableSurface configura una superficie en la que se va a dibujar y la asocia a un dispositivo físico determinado.

Sintaxis

HSURF DrvEnableSurface(
  DHPDEV dhpdev
);

Parámetros

dhpdev

Controle el PDEV del dispositivo físico. Este es el valor devuelto de DrvEnablePDEV. El PDEV describe el dispositivo físico para el que se va a crear una superficie.

Valor devuelto

El valor devuelto es un identificador que identifica la superficie recién creada. De lo contrario, es cero y se registra un código de error.

Comentarios

Hay dos métodos para preparar una superficie para su uso.

  1. En este método, que se recomienda, el controlador crea la superficie mediante una llamada a EngCreateDeviceSurface. Una vez que GDI crea la superficie y devuelve un identificador al controlador, el controlador llama a EngModifySurface, que establece las marcas de enlace adecuadas y, opcionalmente, informa a GDI de la ubicación de la superficie.
  2. El segundo método es el que usan los controladores de Windows NT 4.0. En este método, el controlador llama a EngCreateBitmap. Después de esta llamada, el controlador llama a EngAssociateSurface para asociar la superficie con el dispositivo de visualización físico. Esta función GDI permite al controlador especificar qué rutinas de salida de gráficos se admiten para mapas de bits de formato estándar. Una llamada a esta función solo se puede realizar cuando no existe ninguna superficie para el dispositivo físico especificado. Si se vuelve a migrar un controlador de Windows 2000 o posterior para que se ejecute en Windows NT 4.0, se debe usar este método. Si este controlador también se ejecutará en Windows 2000 o posterior, una ruta de acceso de código independiente en el controlador debe usar el primer método.

    En el caso de los dispositivos de impresora, la situación habitual es que GDI recopile los gráficos directamente en un mapa de bits GDI. El controlador debe llamar a EngCreateBitmap, que permite que GDI asigne memoria para el mapa de bits.

Cualquier identificador de mapa de bits GDI existente es un identificador de superficie válido.

Para los archivos DLL de gráficos de impresora que usan superficies administradas por GDI, la función DrvEnableSurface debe llamar a EngCreateBitmap, especificando un tamaño de superficie lo suficientemente grande como para contener una página física completa. Si se produce un error, se deben intentar las llamadas repetidas a EngCreateBitmap , con tamaños de superficie decrecientes, hasta que una llamada se realice correctamente. El tamaño válido debe especificarse como entrada en EngMarkBandingSurface, que informa a GDI de que será necesario el uso de bandas de superficies.

Después de que DrvEnableSurface devuelva un identificador a una superficie principal, no llame a EngModifySurface o EngAssociateSurface en ese identificador. Si lo hace, puede provocar una comprobación de errores en determinadas circunstancias. Para obtener más información, consulte el artículo de Microsoft Knowledge Base 330248.

DrvEnableSurface es necesario para los controladores de gráficos.

Requisitos

Requisito Value
Plataforma de destino Escritorio
Encabezado winddi.h (incluya Winddi.h)

Consulte también

DrvDisableSurface

DrvEnablePDEV

EngCreateBitmap

EngCreateDeviceSurface