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 |
---|---|
|
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. |
|
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 |
|
Vedi anche