DdQueryDirectDrawObject 関数 (ddrawgdi.h)
[この機能は、オペレーティング システムのリビジョンごとに変更される場合があります。 代わりに、Microsoft DirectDraw と Microsoft Direct3DAPIs を使用します。これらの API は、このようなオペレーティング システムの変更からアプリケーションを保護し、ディスプレイ ドライバーと直接やり取りすることに関連する他の多くの困難を隠します。
NtGdiDdQueryDirectDrawObject 関数のラッパーで、以前に作成したカーネル モード表現の機能を照会します。
GdiEntry2 は、この関数のエイリアスとして定義されます。
構文
BOOL DdQueryDirectDrawObject(
LPDDRAWI_DIRECTDRAW_GBL pDirectDrawGlobal,
LPDDHALINFO pHalInfo,
LPDDHAL_DDCALLBACKS pDDCallbacks,
LPDDHAL_DDSURFACECALLBACKS pDDSurfaceCallbacks,
LPDDHAL_DDPALETTECALLBACKS pDDPaletteCallbacks,
LPD3DHAL_CALLBACKS pD3dCallbacks,
LPD3DHAL_GLOBALDRIVERDATA pD3dDriverData,
LPDDHAL_DDEXEBUFCALLBACKS pD3dBufferCallbacks,
LPDDSURFACEDESC pD3dTextureFormats,
LPDWORD pdwFourCC,
LPVIDMEM pvmList
);
パラメーター
pDirectDrawGlobal
以前に DdCreateDirectDrawObject を使用してカーネル側オブジェクトが作成されたユーザー モードの DirectDraw オブジェクトへのポインター。
pHalInfo
デバイスの機能で満たされる DDHALINFO 構造体へのポインター。 詳細については、DDK のドキュメントを参照してください。
pDDCallbacks
コールバック ポインターのテーブルへのポインター。 テーブルには、DirectDraw ディスプレイ ドライバーを模倣する Gdi32.dll 内の関数へのポインターが格納されます。 このコールバック テーブルは、DDK ドキュメントで説明されているDD_CALLBACKS構造にマップされる DDHAL_DDCALLBACKS 構造体と同じです。
pDDSurfaceCallbacks
サーフェス コールバック ポインターのテーブルへのポインター。 テーブルには、DirectDraw ディスプレイ ドライバーを模倣する Gdi32.dll 内の関数へのポインターが格納されます。 このコールバック テーブルは、DDK ドキュメントで説明されているDD_SURFACECALLBACKS構造にマップされる DDHAL_DDSURFACECALLBACKS 構造体と同じです。
pDDPaletteCallbacks
パレット コールバック ポインターのテーブルへのポインター。 テーブルには、DirectDraw ディスプレイ ドライバーを模倣する Gdi32.dll 内の関数へのポインターが格納されます。 このコールバック テーブルは、DDK ドキュメントで説明されているDD_PALETTECALLBACKS構造にマップされる DDHAL_DDPALETTECALLBACKS 構造と同じです。
pD3dCallbacks
Direct3D コールバック ポインターのテーブルへのポインター。 テーブルには、Direct3D ディスプレイ ドライバーを模倣する Gdi32.dll 内の関数へのポインターが格納されます。 このコールバック テーブルは、DDK ドキュメントで説明されている D3DHAL_CALLBACKS 構造と同じです。
pD3dDriverData
DDK ドキュメントで説明されているように、 データ D3DHAL_GLOBALDRIVERDATAへのポインター。
pD3dBufferCallbacks
コールバック ポインターのテーブルへのポインター。 テーブルには、Direct3D ディスプレイ ドライバーを模倣する Gdi32.dll 内の関数へのポインターが格納されます。 このコールバック テーブルは、DDK ドキュメントで説明されているDD_D3DBUFCALLBACKS構造にマップされる DDHAL_DDEXEBUFCALLBACKS 構造と同じですが、DD_D3DBUFCALLBACKSのメンバー XxxD3DBuffer は 、DDHAL_DDEXEBUFCALLBACKS の XxxExecuteBuffer に置き換えられます。
pD3dTextureFormats
許容されるテクスチャ形式のセットを定義する DDSURFACEDESC 構造体の配列へのポインター。
pdwFourCC
サポートされている 4 文字コード (FOURCC) サーフェス形式の一覧へのポインター。 NULL を指定できます。
pvmList
ビデオ メモリ ヒープ記述子の一覧へのポインター。 NULL を指定できます。 ビデオ メモリ管理はカーネル モード内で完全に処理されるため、このパラメーターは使用されません。
戻り値
成功した場合、この関数は TRUE を返します。それ以外の場合は FALSE を返します。
注釈
この関数の呼び出しは、2 段階のプロセスで行われるよう設計されています。 最初の手順では、 pdwFourCC、 pvmList 、 pD3dTextureFormats を NULL にし、 DdQueryDirectDrawObject で DDHALINFO を入力します。ddCaps。dwNumFourCCCodes、 DDHALINFO。vmiData。dwNumHeaps、 および D3DHAL_GLOBALDRIVERDATA。返されるエントリの数を含む dwNumTextureFormats 。 2 番目の呼び出しでは、呼び出し元は指定されたサイズの配列を割り当て、pdwFourCC、pvmList、pD3dTextureFormats パラメーターに NULL 値ではなく、それらのポインターを渡す必要があります。 その後、配列に適切なデータが設定されます。
アプリケーションでは、DirectDraw API と Direct3D API を使用してグラフィックス デバイス オブジェクトを作成および管理することをお勧めします。 これらのコンストラクトは、簡略化されたオペレーティング システムに依存しない方法でデバイス作成プロセスを抽象化します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | ddrawgdi.h |