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 |