Функция EngModifySurface (winddi.h)
Функция EngModifySurface уведомляет GDI об атрибутах поверхности, созданной драйвером.
Синтаксис
ENGAPI BOOL EngModifySurface(
HSURF hsurf,
HDEV hdev,
FLONG flHooks,
FLONG flSurface,
DHSURF dhsurf,
VOID *pvScan0,
LONG lDelta,
VOID *pvReserved
);
Параметры
hsurf
Дескриптор поверхности для изменения. Этот параметр представляет собой дескриптор поверхности, возвращаемый EngCreateDeviceBitmap или EngCreateDeviceSurface или из элемента hsurf структуры SURFOBJ .
hdev
Дескриптор устройства, с которым должна быть связана поверхность. Это дескриптор, который GDI передает в DrvCompletePDEV.
flHooks
Набор флагов, управляющих функциями, которые драйвер может зацепить при каждом рисовании GDI на указанной поверхности. Это может быть побитовое значение ИЛИ любого из значений HOOK_Xxx, перечисленных на справочной странице EngAssociateSurface .
flSurface
Набор флагов, описывающих атрибуты поверхности. В настоящее время драйвер должен задать для этого параметра значение MS_NOTSYSTEMMEMORY, если поверхность находится в видеопамяте.
dhsurf
Определяет поверхность для драйвера. Драйвер может задать для этого значение что угодно; GDI присваивает члену dhsurf структуры SURFOBJ результирующей поверхности это значение, если функция выполнена успешно.
pvScan0
Указатель на виртуальный адрес начала растрового изображения.
lDelta
Шаг виртуального адреса растрового изображения; т. е. количество байтов между началом одной строки растрового изображения и следующей.
pvReserved
Зарезервировано и всегда должно иметь значение NULL.
Возвращаемое значение
EngModifySurface возвращает значение TRUE при успешном выполнении; В противном случае возвращается значение FALSE.
Комментарии
EngModifySurface позволяет драйверу изменять поверхность, управляемую устройством , и информировать GDI об атрибутах этой поверхности. Это позволяет драйверам преобразовывать поверхность назначения из непрозрачной в непрозрачную, что позволяет GDI рисовать на поверхности.
Двигатель DIB использует pvScan0 и lDelta для рисования непосредственно к поверхности. Если эти параметры имеют значение NULL, поверхность непрозрачна для GDI, и GDI будет отменить изменения вызова DrvCopyBits для операций рисования, не вызванных драйвером.
После того как DrvEnableSurface вернет дескриптор в основную поверхность, не вызывайте EngModifySurface для этого дескриптора. Это может привести к ошибке проверка в определенных обстоятельствах. Дополнительные сведения см. в статье базы знаний Майкрософт 330248.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно в Windows 2000 и более поздних версиях операционных систем Windows. |
Целевая платформа | Универсальное |
Верхняя часть | winddi.h (включая Winddi.h) |
Библиотека | Win32k.lib |
DLL | Win32k.sys |