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 段階のプロセスで行われるよう設計されています。 最初の手順では、 pdwFourCCpvmListpD3dTextureFormatsNULL にし、 DdQueryDirectDrawObjectDDHALINFO を入力します。ddCapsdwNumFourCCCodesDDHALINFOvmiDatadwNumHeapsおよび D3DHAL_GLOBALDRIVERDATA。返されるエントリの数を含む dwNumTextureFormats 。 2 番目の呼び出しでは、呼び出し元は指定されたサイズの配列を割り当て、pdwFourCCpvmListpD3dTextureFormats パラメーターに NULL 値ではなく、それらのポインターを渡す必要があります。 その後、配列に適切なデータが設定されます。

アプリケーションでは、DirectDraw API と Direct3D API を使用してグラフィックス デバイス オブジェクトを作成および管理することをお勧めします。 これらのコンストラクトは、簡略化されたオペレーティング システムに依存しない方法でデバイス作成プロセスを抽象化します。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー ddrawgdi.h

こちらもご覧ください

グラフィックスの低レベルクライアントサポート