Fonction NtGdiDdQueryDirectDrawObject

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

Interroge une représentation en mode noyau créée précédemment d’un objet Microsoft DirectDraw pour ses fonctionnalités.

Syntaxe

BOOL APIENTRY NtGdiDdQueryDirectDrawObject(
  _In_  HANDLE                      hDirectDrawLocal,
  _Out_ DD_HALINFO                  *pHalInfo,
        DWORD                       *pCallBackFlags,
  _Out_ LPD3DNTHAL_CALLBACKS        puD3dCallbacks,
  _Out_ LPD3DNTHAL_GLOBALDRIVERDATA puD3dDriverData,
  _Out_ PDD_D3DBUFCALLBACKS         puD3dBufferCallbacks,
  _Out_ LPDDSURFACEDESC             puD3dTextureFormats,
  _Out_ DWORD                       *puNumHeaps,
  _Out_ VIDEOMEMORY                 *puvmList,
  _Out_ DWORD                       *puNumFourCC,
  _Out_ DWORD                       *puFourCC
);

Paramètres

hDirectDrawLocal [in]

Gérez l’appareil DirectDraw en mode noyau créé précédemment.

pHalInfo [out]

Pointeur vers une structure de DD_HALINFO qui sera remplie avec les fonctionnalités de l’appareil. Pour plus d’informations, consultez la documentation DDK.

pCallBackFlags

Pointeur vers une mémoire tampon fournie par l’appelant qui stocke les indicateurs de rappel signalés par le pilote. La mémoire tampon doit être de taille 3*sizeof(DWORD) et stocke les indicateurs de rappel dans l’ordre suivant : pCallBackFlags[0] pour les indicateurs dans DD_CALLBACKS, pCallBackFlags[1] pour les indicateurs dans DD_SURFACECALLBACKS et pCallBackFlags[2] pour les indicateurs dans DD_PALETTECALLBACKS. Pour plus d’informations, consultez la documentation DDK.

puD3dCallbacks [out]

Pointeur vers une table de pointeurs de rappel Direct3D. La table est remplie de pointeurs vers des fonctions au sein de Gdi32.dll qui imitent un pilote d’affichage Direct3D. Cette table de rappel est identique à la structure D3DHAL_D3DCALLBACKS décrite dans la documentation DDK.

puD3dDriverData [out]

Pointeur vers D3DHAL_GLOBALDRIVERDATA données, comme décrit dans la documentation DDK.

puD3dBufferCallbacks [out]

Pointeur vers une table de pointeurs de rappel. La table est remplie de pointeurs vers des fonctions au sein de Gdi32.dll qui imitent un pilote d’affichage Direct3D. Cette table de rappel est identique à la structure DDHAL_DDEXEBUFCALLBACKS, qui correspond à la structure de DD_D3DBUFCALLBACKS décrite dans la documentation DDK, sauf que les membres XxxD3DBuffer dans DD_D3DBUFCALLBACKS sont remplacés par XxxExecuteBuffer dans DDHAL_DDEXEBUFCALLBACKS.

puD3dTextureFormats [out]

Pointeur vers un tableau de structures DDSURFACEDESC qui définissent l’ensemble de formats de texture autorisés.

puNumHeaps [out]

Pointeur vers le membre dwNumHeaps de DD_HALINFO. vmiData. Le membre dwNumHeaps spécifie le nombre de tas de mémoire dans puvmList. Pour plus d’informations, consultez la documentation DDK.

puvmList [out]

Pointeur vers une liste de descripteurs de tas de mémoire vidéo. Peut être NULL. Ce paramètre n’est pas utilisé, car la gestion de la mémoire vidéo est gérée entièrement en mode noyau.

puNumFourCC [out]

Pointeur vers le membre puNumFourCCCodes de DD_HALINFO. ddCaps. Le membre puNumFourCCCodes spécifie le nombre de codes FOURCC (Four-Character Codes) pris en charge par le pilote. Pour plus d’informations, consultez la documentation DDK.

puFourCC [out]

Pointeur vers une liste des formats d’aire four-Character Codes (FOURCC) pris en charge. Peut être NULL.

Valeur retournée

Si elle réussit, cette fonction retourne TRUE ; sinon, il retourne FALSE.

Notes

Un appel à cette fonction est conçu pour être effectué dans un processus en deux étapes. Dans la première étape, puFourCC, puvmList et puD3dTextureFormats doivent avoir la valeur NULL, et DdQueryDirectDrawObject remplira DD_HALINFO. ddCaps. dwNumFourCCCodes, DD_HALINFO. vmiData. dwNumHeaps et D3DHAL_GLOBALDRIVERDATA. dwNumTextureFormats avec le nombre d’entrées à retourner. Dans le deuxième appel, l’appelant doit allouer des tableaux de la taille indiquée et passer ces pointeurs au lieu des valeurs NULL dans les paramètres puFourCC, puvmList et puD3dTextureFormats . Les tableaux seront ensuite renseignés avec les données appropriées.

Il est conseillé aux applications d’utiliser les API DirectDraw et Direct3D pour créer et gérer des objets d’appareil graphique. Ces constructions abstraites du processus de création d’appareil de manière simplifiée et indépendante du système d’exploitation.

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 graphique de bas niveau

DdQueryDirectDrawObject

NtGdiDdCreateDirectDrawObject