NtGdiDdCreateSurface 関数
[この機能は、オペレーティング システムのリビジョンごとに変更される可能性があります。 代わりに、Microsoft DirectDraw と Microsoft Direct3DAPIs を使用します。これらの API は、このようなオペレーティング システムの変更からアプリケーションを保護し、ディスプレイ ドライバーとの直接対話に関連する他の多くの困難を隠します。
サーフェスを別のサーフェスにアタッチします。
構文
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
);
パラメーター
-
hDirectDraw [in]
-
ドライバーを表す DD_DIRECTDRAW_GLOBAL 構造体へのハンドル。
-
hSurface [in]
-
同じサーフェスへの前のハンドル。 モード 切り替え後にサーフェスを再作成する場合に使用します。
-
puSurfaceDescription [in, out]
-
ドライバーが作成する必要があるサーフェスまたはバッファーを記述する DDSURFACEDESC 構造体へのポインター。
-
puSurfaceGlobalData [in, out]
-
複数のサーフェスとグローバルに共有されるサーフェス データを含む DD_SURFACE_GLOBAL 構造体へのポインター。
-
puSurfaceLocalData [in, out]
-
ドライバーによって作成されたサーフェス オブジェクトを記述する DD_SURFACE_LOCAL 構造体の一覧へのポインター。
-
puSurfaceMoreData [in, out]
-
追加のローカル サーフェス データを含む DD_SURFACE_MORE 構造体へのポインター。
-
puCreateSurfaceData [in, out]
-
サーフェスの作成に必要な情報を含む DD_CREATESURFACEDATA 構造体へのポインター。
-
puhSurface [out]
-
DirectDraw API で使用され、ドライバーで入力しないでください。
戻り値
NtGdiDdCreateSurface は 、次のいずれかのコールバック コードを返します。
リターン コード | 説明 |
---|---|
|
ドライバーが操作を実行し、その操作の有効なリターン コードを返しました。 このコードがDD_OKされている場合、DirectDraw または Direct3D は 関数を続行します。 それ以外の場合、DirectDraw または Direct3D はドライバーによって提供されたエラー コードを返し、関数を中止します。 |
|
ドライバーには、要求された操作に関するコメントはありません。 ドライバーが特定のコールバックを実装する必要がある場合、DirectDraw または Direct3D はエラー状態を報告します。 それ以外の場合、DirectDraw または Direct3D は、DirectDraw または Direct3D デバイスに依存しない実装を実行してドライバー コールバックが定義されていないかのように操作を処理します。 |
注釈
この関数を使用する代わりに、アプリケーションで IDirectDraw7::CreateSurface を 呼び出することをお勧めします。
スワップ チェーンやチェーン、ミップマップなど、アタッチされたサーフェスのチェーンを作成する場合は、最初に各サーフェスに 対して NtGdiDdCreateSurfaceObject を呼び出す必要があります。 次に 、NtGdiDdAttachSurface を呼び出して接続します。 最後に、チェーン内の最初のサーフェスに対してのみ NtGdiDdCreateSurface を呼び出します。 この場合、 hSurface は、チェーン内の最初のサーフェスに対して NtGdiDdCreateSurfaceObject によって返されるハンドルになります。
NtGdiDdCreateSurface は 、ローカルおよびローカル以外のビデオ メモリにサーフェスを作成する場合にのみ呼び出す必要があります。 システム メモリ サーフェスを作成するために呼び出すべきではありません。 システム メモリ サーフェスを作成するには、代わりに NtGdiDdCreateSurfaceObject を 使用します。
必要条件
要件 | 値 |
---|---|
サポートされている最小のクライアント |
Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー |
Windows 2000 Server [デスクトップ アプリのみ] |
ヘッダー |
|
関連項目