EngModifySurface-Funktion (winddi.h)

Die EngModifySurface-Funktion benachrichtigt GDI über die Attribute einer Oberfläche, die vom Treiber erstellt wurde.

Syntax

ENGAPI BOOL EngModifySurface(
  HSURF  hsurf,
  HDEV   hdev,
  FLONG  flHooks,
  FLONG  flSurface,
  DHSURF dhsurf,
  VOID   *pvScan0,
  LONG   lDelta,
  VOID   *pvReserved
);

Parameter

hsurf

Ziehpunkt auf die Oberfläche, die geändert werden soll. Dieser Parameter ist der Surface-Handle, der von EngCreateDeviceBitmap oder EngCreateDeviceSurface oder vom hsurf-Element der SURFOBJ-Struktur zurückgegeben wird.

hdev

Handle an das Gerät, dem die Oberfläche zugeordnet werden soll. Dies ist das Handle, das GDI an DrvCompletePDEV übergeben hat.

flHooks

Ist eine Reihe von Flags, die die Funktionen steuern, die der Treiber anhaken kann, wenn GDI-Zeichnung auf der angegebenen Oberfläche erfolgt. Dies kann ein bitweises OR eines der HOOK_Xxx-Werte sein, die auf der EngAssociateSurface-Referenzseite aufgeführt sind.

flSurface

Ist ein Satz von Flags, die die Attribute der Oberfläche beschreiben. Derzeit sollte der Treiber dies auf MS_NOTSYSTEMMEMORY festlegen, wenn sich die Oberfläche im Videospeicher befindet.

dhsurf

Identifiziert die Oberfläche für den Treiber. Der Treiber kann dies auf alles festlegen. GDI legt den dhsurf-Member der SURFOBJ-Struktur der resultierenden Oberfläche auf diesen Wert fest, wenn die Funktion erfolgreich ist.

pvScan0

Zeiger auf die virtuelle Adresse des Anfangs der Bitmap.

lDelta

Der virtuelle Adressschritt der Bitmap; d. h. die Anzahl der Bytes zwischen dem Anfang einer Bitmapzeile und der nächsten.

pvReserved

Ist reserviert und muss immer auf NULL festgelegt werden.

Rückgabewert

EngModifySurface gibt bei Erfolg TRUE zurück. Andernfalls wird FALSE zurückgegeben.

Hinweise

EngModifySurface ermöglicht es dem Treiber, eine geräteverwaltete Oberfläche zu ändern und GDI über die Attribute dieser Oberfläche zu informieren. Dies ermöglicht es Treibern, die Zieloberfläche von undurchsichtig in nicht transparent zu konvertieren, sodass GDI auf der Oberfläche zeichnen kann.

Die DIB-Engine verwendet pvScan0 und lDelta , um direkt auf die Oberfläche zu zeichnen. Wenn diese Parameter NULL sind, ist die Oberfläche für GDI undurchsichtig, und GDI rückgängig machen, DrvCopyBits für Zeichnungsvorgänge aufzurufen, die nicht vom Treiber eingebunden werden.

Nachdem DrvEnableSurface ein Handle an eine primäre Oberfläche zurückgegeben hat, rufen Sie EngModifySurface für dieses Handle nicht auf. Dies kann unter bestimmten Umständen zu einer Fehlerüberprüfung führen. Weitere Informationen finden Sie im Microsoft Knowledge Base-Artikel 330248.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar in Windows 2000 und höheren Versionen der Windows-Betriebssysteme.
Zielplattform Universell
Header winddi.h (einschließlich Winddi.h)
Bibliothek Win32k.lib
DLL Win32k.sys

Weitere Informationen

DrvCopyBits

EngAssociateSurface