Funzione NtGdiDdCreateSurface

[Questa funzione è soggetta a modifiche con ogni revisione del sistema operativo. Usare invece Microsoft DirectDraw e Microsoft Direct3DAPIs; queste API isolano le applicazioni da tali modifiche al sistema operativo e nascondono molte altre difficoltà coinvolte nell'interagire direttamente con i driver di visualizzazione.

Collega una superficie a un'altra superficie.

Sintassi

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

Parametri

hDirectDraw [in]

Handle nella struttura DD_DIRECTDRAW_GLOBAL che rappresenta il driver.

hSurface [in]

Handle precedente alla stessa superficie. Usato se la superficie viene ricreata dopo un commutatore in modalità.

puSurfaceDescription [in, out]

Puntatore alla struttura DDSURFACEDESC che descrive la superficie o il buffer che il driver deve creare.

puSurfaceGlobalData [in, out]

Puntatore alla struttura DD_SURFACE_GLOBAL contenente dati di superficie condivisi a livello globale con più superfici.

puSurfaceLocalData [in, out]

Puntatore a un elenco di strutture DD_SURFACE_LOCAL che descrivono gli oggetti di superficie creati dal driver.

puSurfaceMoreData [in, out]

Puntatore a una struttura DD_SURFACE_MORE che contiene dati di superficie locali aggiuntivi.

puCreateSurfaceData [in, out]

Puntatore a una struttura DD_CREATESURFACEDATA contenente le informazioni necessarie per creare una superficie.

puhSurface [out]

Viene usato dall'API DirectDraw e non deve essere compilato dal driver.

Valore restituito

NtGdiDdCreateSurface restituisce uno dei codici di callback seguenti.

Codice restituito Descrizione
DDHAL_DRIVER_HANDLED
Il driver ha eseguito l'operazione e ha restituito un codice restituito valido per tale operazione. Se questo codice è DD_OK, DirectDraw o Direct3D procede con la funzione. In caso contrario, DirectDraw o Direct3D restituisce il codice di errore fornito dal driver e interrompe la funzione.
DDHAL_DRIVER_NOTHANDLED
Il driver non ha alcun commento sull'operazione richiesta. Se è necessario che il driver abbia implementato un callback specifico, DirectDraw o Direct3D segnala una condizione di errore. In caso contrario, DirectDraw o Direct3D gestisce l'operazione come se il callback del driver non fosse stato definito eseguendo l'implementazione indipendente dal dispositivo DirectDraw o Direct3D.

 

Commenti

È consigliabile chiamare L'applicazione IDirectDraw7::CreateSurface anziché usare questa funzione.

Quando si crea una catena di superfici associate, ad esempio una catena di scambio o una catena o mipmaps, è necessario chiamare NtGdiDdCreateSurfaceObject per ogni superficie. Chiamare quindi NtGdiDdAttachSurface per collegarli. Infine, chiamare NtGdiDdCreateSurface per la prima superficie della catena. In questo caso , hSurface sarà l'handle restituito da NtGdiDdCreateSurfaceObject per la prima superficie della catena.

NtGdiDdCreateSurface deve essere chiamato solo per creare superfici in memoria video locale e non locale. Non deve mai essere chiamato per creare superfici di memoria di sistema. Per creare superfici di memoria di sistema, usare invece NtGdiDdCreateSurfaceObject .

Requisiti

Requisito Valore
Client minimo supportato
Windows 2000 Professional [solo app desktop]
Server minimo supportato
Windows 2000 Server [solo app desktop]
Intestazione
Ntgdi.h

Vedi anche

Supporto client a basso livello di grafica