Partager via


Fonction NtGdiDdCreateSurface

[Cette fonction est susceptible d’être modifiée à chaque révision du système d’exploitation. Utilisez plutôt Microsoft DirectDraw et Microsoft Direct3DAPIs ; ces API isolent les applications de ces modifications du système d’exploitation et masquent de nombreuses autres difficultés liées à l’interaction directe avec les pilotes d’affichage.]

Attache une surface à une autre surface.

Syntaxe

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

Paramètres

hDirectDraw [in]

Handle vers la structure DD_DIRECTDRAW_GLOBAL représentant le pilote.

hSurface [in]

Poignée précédente sur la même surface. Utilisé si la surface est recréé après un changement de mode.

puSurfaceDescription [in, out]

Pointeur vers la structure DDSURFACEDESC décrivant la surface ou la mémoire tampon que le pilote doit créer.

puSurfaceGlobalData [in, out]

Pointeur vers la structure DD_SURFACE_GLOBAL contenant des données de surface partagées globalement avec plusieurs surfaces.

puSurfaceLocalData [in, out]

Pointeur vers une liste de structures DD_SURFACE_LOCAL décrivant les objets surface créés par le pilote.

puSurfaceMoreData [in, out]

Pointeur vers une structure de DD_SURFACE_MORE qui contient des données de surface locales supplémentaires.

puCreateSurfaceData [in, out]

Pointeur vers une structure DD_CREATESURFACEDATA qui contient les informations requises pour créer une surface.

puhSurface [out]

Est utilisé par l’API DirectDraw et ne doit pas être renseigné par le pilote.

Valeur retournée

NtGdiDdCreateSurface retourne l’un des codes de rappel suivants.

Code de retour Description
DDHAL_DRIVER_HANDLED
Le pilote a effectué l’opération et retourné un code de retour valide pour cette opération. Si ce code est DD_OK, DirectDraw ou Direct3D exécute la fonction . Sinon, DirectDraw ou Direct3D retourne le code d’erreur fourni par le pilote et abandonne la fonction.
DDHAL_DRIVER_NOTHANDLED
Le pilote n’a aucun commentaire sur l’opération demandée. Si le pilote doit avoir implémenté un rappel particulier, DirectDraw ou Direct3D signale une condition d’erreur. Sinon, DirectDraw ou Direct3D gère l’opération comme si le rappel du pilote n’avait pas été défini en exécutant l’implémentation DirectDraw ou Direct3D indépendante du périphérique.

 

Notes

Il est recommandé que votre application appelle IDirectDraw7::CreateSurface au lieu d’utiliser cette fonction.

Lors de la création d’une chaîne de surfaces attachées, comme une chaîne d’échange ou une chaîne ou des mipmaps, NtGdiDdCreateSurfaceObject doit d’abord être appelé pour chaque surface. Appelez ensuite NtGdiDdAttachSurface pour les attacher. Enfin, appelez NtGdiDdCreateSurface pour la première surface de la chaîne uniquement. Dans ce cas, hSurface est le handle retourné par NtGdiDdCreateSurfaceObject pour la première surface de la chaîne.

NtGdiDdCreateSurface doit uniquement être appelé pour créer des surfaces dans la mémoire vidéo locale et non locale. Il ne doit jamais être appelé pour créer des surfaces de mémoire système. Pour créer des surfaces de mémoire système, utilisez NtGdiDdCreateSurfaceObject à la place.

Spécifications

Condition requise Valeur
Client minimal pris en charge
Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge
Windows 2000 Server [applications de bureau uniquement]
En-tête
Ntgdi.h

Voir aussi

Prise en charge du client de bas niveau graphique