NtGdiDdCreateSurface-Funktion

[Diese Funktion kann sich mit jeder Betriebssystemrevision ändern. Verwenden Sie stattdessen die Microsoft DirectDraw- und Microsoft Direct3DAPIs. diese APIs isolieren Anwendungen vor solchen Betriebssystemänderungen und verbergen viele andere Schwierigkeiten bei der direkten Interaktion mit Anzeigetreibern.]

Fügt eine Oberfläche an einer anderen Oberfläche an.

Syntax

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
);

Parameter

hDirectDraw [in]

Handle für die DD_DIRECTDRAW_GLOBAL-Struktur , die den Treiber darstellt.

hSurface [in]

Vorheriger Handle auf der gleichen Oberfläche. Wird verwendet, wenn die Oberfläche nach einem Moduswechsel neu erstellt wird.

puSurfaceDescription [in, out]

Zeiger auf die DDSURFACEDESC-Struktur , die die Oberfläche oder den Puffer beschreibt, die der Treiber erstellen soll.

puSurfaceGlobalData [in, out]

Zeiger auf die DD_SURFACE_GLOBAL-Struktur , die Oberflächendaten enthält, die global für mehrere Oberflächen freigegeben werden.

puSurfaceLocalData [in, out]

Zeiger auf eine Liste von DD_SURFACE_LOCAL Strukturen, die die vom Treiber erstellten Oberflächenobjekte beschreiben.

puSurfaceMoreData [in, out]

Zeiger auf eine DD_SURFACE_MORE-Struktur , die zusätzliche lokale Oberflächendaten enthält.

puCreateSurfaceData [in, out]

Zeiger auf eine DD_CREATESURFACEDATA Struktur, die die zum Erstellen einer Oberfläche erforderlichen Informationen enthält.

puhSurface [out]

Wird von der DirectDraw-API verwendet und sollte nicht vom Treiber ausgefüllt werden.

Rückgabewert

NtGdiDdCreateSurface gibt einen der folgenden Rückrufcodes zurück.

Rückgabecode Beschreibung
DDHAL_DRIVER_HANDLED
Der Treiber hat den Vorgang ausgeführt und einen gültigen Rückgabecode für diesen Vorgang zurückgegeben. Wenn dieser Code DD_OK ist, fährt DirectDraw oder Direct3D mit der Funktion fort. Andernfalls gibt DirectDraw oder Direct3D den vom Treiber bereitgestellten Fehlercode zurück und bricht die Funktion ab.
DDHAL_DRIVER_NOTHANDLED
Der Treiber hat keinen Kommentar zum angeforderten Vorgang. Wenn der Treiber einen bestimmten Rückruf implementiert haben muss, meldet DirectDraw oder Direct3D eine Fehlerbedingung. Andernfalls verarbeitet DirectDraw oder Direct3D den Vorgang so, als wäre der Treiberrückruf nicht durch Ausführen der geräteunabhängigen DirectDraw- oder Direct3D-Implementierung definiert worden.

 

Bemerkungen

Es wird empfohlen, dass Ihre Anwendung IDirectDraw7::CreateSurface aufruft, anstatt diese Funktion zu verwenden.

Beim Erstellen einer Kette angefügter Oberflächen, z. B. einer Swapchain oder einer Kette oder mipmaps, sollte NtGdiDdCreateSurfaceObject zuerst für jede Oberfläche aufgerufen werden. Rufen Sie dann NtGdiDdAttachSurface auf, um sie anzufügen. Rufen Sie schließlich NtGdiDdCreateSurface nur für die erste Oberfläche in der Kette auf. In diesem Fall wäre hSurface der von NtGdiDdCreateSurfaceObject für die erste Oberfläche in der Kette zurückgegebene Handle.

NtGdiDdCreateSurface sollte nur aufgerufen werden, um Oberflächen im lokalen und nicht lokalen Videospeicher zu erstellen. Es sollte niemals aufgerufen werden, um Systemspeicheroberflächen zu erstellen. Verwenden Sie zum Erstellen von Systemspeicheroberflächen stattdessen NtGdiDdCreateSurfaceObject .

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows 2000 Server [nur Desktop-Apps]
Header
Ntgdi.h

Weitere Informationen

Low-Level-Clientunterstützung für Grafiken