NtGdiDdCreateSurface-Funktion
[Diese Funktion kann bei jeder Betriebssystemrevision geändert werden. Verwenden Sie stattdessen 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 eine andere 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]
-
Vorheriges Handle für dieselbe 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 mit mehreren Oberflächen gemeinsam genutzt 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 |
|---|---|
|
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, wird DirectDraw oder Direct3D mit der Funktion fortgesetzt. Andernfalls gibt DirectDraw oder Direct3D den vom Treiber bereitgestellten Fehlercode zurück und bricht die Funktion ab. |
|
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 ob der Treiberrückruf nicht durch Ausführen der geräteunabhängigen DirectDraw- oder Direct3D-Implementierung definiert worden wäre. |
Hinweise
Es wird empfohlen, dass Ihre Anwendung IDirectDraw7::CreateSurface aufruft, anstatt diese Funktion zu verwenden.
Beim Erstellen einer Kette von angefügten Oberflächen, z. B. einer Verkettungskette 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 ist hSurface das Handle, das von NtGdiDdCreateSurfaceObject für die erste Oberfläche in der Kette zurückgegeben wird.
NtGdiDdCreateSurface sollte nur aufgerufen werden, um Oberflächen im lokalen und nicht lokalen Videospeicher zu erstellen. Es sollte nie aufgerufen werden, um Systemspeicheroberflächen zu erstellen. Verwenden Sie stattdessen NtGdiDdCreateSurfaceObject, um Systemspeicheroberflächen zu erstellen.
Anforderungen
| Anforderung | Wert |
|---|---|
| Unterstützte Mindestversion (Client) |
Windows 2000 Professional [nur Desktop-Apps] |
| Unterstützte Mindestversion (Server) |
Windows 2000 Server [nur Desktop-Apps] |
| Header |
|