NtGdiDdQueryDirectDrawObject-Funktion

[Diese Funktion kann sich mit jeder Betriebssystemrevision ändern. Verwenden Sie stattdessen die DirectDraw- und Microsoft Direct3DAPIs. diese APIs isolieren Anwendungen vor solchen Betriebssystemänderungen und verbergen viele andere Schwierigkeiten bei der direkten Interaktion mit Anzeigetreibern.]

Fragt eine zuvor erstellte Kernelmodusdarstellung eines Microsoft DirectDraw-Objekts nach seinen Funktionen ab.

Syntax

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

Parameter

hDirectDrawLocal [in]

Behandeln Sie das zuvor erstellte Kernelmodus-DirectDraw-Gerät.

pHalInfo [out]

Zeiger auf eine DD_HALINFO-Struktur , die mit den Funktionen des Geräts gefüllt wird. Ausführliche Informationen finden Sie in der DDK-Dokumentation.

pCallBackFlags

Zeiger auf einen vom Aufrufer bereitgestellten Puffer, in dem vom Treiber gemeldete Rückrufflags gespeichert werden. Der Puffer sollte die Größe 3*sizeof(DWORD) aufweisen und Rückrufflags in der folgenden Reihenfolge speichern: pCallBackFlags[0] für Flags in DD_CALLBACKS, pCallBackFlags[1] für Flags in DD_SURFACECALLBACKS und pCallBackFlags[2] für Flags in DD_PALETTECALLBACKS. Ausführliche Informationen finden Sie in der DDK-Dokumentation.

puD3dCallbacks [out]

Zeiger auf eine Tabelle mit Direct3D-Rückrufzeigern. Die Tabelle ist mit Zeigern auf Funktionen in Gdi32.dll gefüllt, die einen Direct3D-Anzeigetreiber imitieren. Diese Rückruftabelle ist mit der in der DDK-Dokumentation beschriebenen D3DHAL_D3DCALLBACKS-Struktur identisch.

puD3dDriverData [out]

Zeiger auf D3DHAL_GLOBALDRIVERDATA Daten, wie in der DDK-Dokumentation beschrieben.

puD3dBufferCallbacks [out]

Zeiger auf eine Tabelle mit Rückrufzeigern. Die Tabelle ist mit Zeigern auf Funktionen in Gdi32.dll gefüllt, die einen Direct3D-Anzeigetreiber imitieren. Diese Rückruftabelle ist identisch mit der DDHAL_DDEXEBUFCALLBACKS-Struktur, die der in der DDK-Dokumentation beschriebenen DD_D3DBUFCALLBACKS-Struktur zugeordnet ist, mit der Ausnahme, dass XxxD3DBuffer-Member in DD_D3DBUFCALLBACKS durch XxxExecuteBuffer in DDHAL_DDEXEBUFCALLBACKS ersetzt werden.

puD3dTextureFormats [out]

Zeiger auf ein Array von DDSURFACEDESC-Strukturen , die den Satz zulässiger Texturformate definieren.

puNumHeaps [out]

Zeiger auf das dwNumHeaps-Element von DD_HALINFO. vmiData. Das dwNumHeaps-Element gibt die Anzahl der Speicherheaps in puvmList an. Ausführliche Informationen finden Sie in der DDK-Dokumentation.

puvmList [out]

Zeiger auf eine Liste von Videospeicher-Heap-Deskriptoren. Kann NULL sein. Dieser Parameter wird nicht verwendet, da die Videospeicherverwaltung vollständig im Kernelmodus verarbeitet wird.

puNumFourCC [out]

Zeiger auf das puNumFourCCCodes-Element von DD_HALINFO. ddCaps. Das puNumFourCCCodes-Element gibt die Anzahl der vierstelligen Codes (FOURCC) an, die der Treiber unterstützt. Ausführliche Informationen finden Sie in der DDK-Dokumentation.

puFourCC [out]

Zeiger auf eine Liste der unterstützten Vierzeichencodes (FOURCC)- Oberflächenformate. Kann NULL sein.

Rückgabewert

Bei erfolgreicher Ausführung gibt diese Funktion TRUE zurück. Andernfalls wird FALSE zurückgegeben.

Hinweise

Ein Aufruf dieser Funktion ist so konzipiert, dass er in einem zweistufigen Prozess erfolgt. Im ersten Schritt sollten puFourCC, puvmList und puD3dTextureFormatsNULL sein, und DdQueryDirectDrawObject füllt DD_HALINFO aus. ddCaps. dwNumFourCCCodes, DD_HALINFO. vmiData. dwNumHeaps und D3DHAL_GLOBALDRIVERDATA. dwNumTextureFormats mit der Anzahl der zurückzugebenden Einträge. Beim zweiten Aufruf sollte der Aufrufer Arrays der angegebenen Größe zuordnen und diese Zeiger anstelle von NULL-Werten in den Parametern puFourCC, puvmList und puD3dTextureFormats übergeben. Die Arrays werden dann mit entsprechenden Daten aufgefüllt.

Anwendungen wird empfohlen, die DirectDraw- und Direct3D-APIs zum Erstellen und Verwalten von Grafikgeräteobjekten zu verwenden. Diese Konstrukte abstrahieren den Prozess der Geräteerstellung vereinfacht und betriebssystemunabhängig.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows 2000 Server [nur Desktop-Apps]
Header
Ntgdi.h

Weitere Informationen

Low-Level-Clientunterstützung für Grafiken

DdQueryDirectDrawObject

NtGdiDdCreateDirectDrawObject