PDD_GETDRIVERINFO
コールバックシグネチャ
DWORD PDD_GETDRIVERINFO(
DD_GETDRIVERINFODATA* param0
);パラメーター
| フィールド | 型 | 説明 |
|---|---|---|
| param0 | DD_GETDRIVERINFODATA* | クエリの実行に必要な情報を格納した DD_GETDRIVERINFODATA 構造体へのポインターです。 |
公式ドキュメント
DdGetDriverInfo 関数は、ドライバーがサポートする追加の DirectDraw 機能および Direct3D 機能をドライバーに問い合わせます。
戻り値
DdGetDriverInfo は DDHAL_DRIVER_HANDLED を返す必要があります。
解説(Remarks)
ドライバーは、DrvEnableDirectDraw では返せない、ドライバーがサポートする DirectDraw 機能を公開するために DdGetDriverInfo を実装する必要があります。
ドライバーの DrvGetDirectDrawInfo 関数は、DD_HALINFO 構造体の GetDriverInfo メンバーで DdGetDriverInfo へのポインターを返します。
GetDriverInfo メンバーが正しく設定されたことを DirectDraw に通知するため、ドライバーは DD_HALINFO 構造体の dwFlags メンバーの DDHALINFO_GETDRIVERINFOSET ビットも設定する必要があります。
DdGetDriverInfo では、指定された GUID で要求されたコールバックまたは機能をドライバーとそのハードウェアがサポートしているかどうかを判断します。GUID_D3DParseUnknownCommandCallback 以外のすべての GUID について、ドライバーが要求されたサポートを提供する場合は、DD_GETDRIVERINFODATA 構造体の次のメンバーを設定します。
- dwActualSize に、ドライバーが返すコールバック構造体または機能構造体のサイズ (バイト単位) を設定します。
- lpvData が指すメモリ内で、要求された機能に対応するコールバック構造体または機能構造体のメンバーを次のように初期化します。
- dwSize メンバーに、構造体のサイズ (バイト単位) を設定します。
- コールバックの場合は、ドライバーが実装するコールバックを指すように関数ポインターを設定し、ドライバーがサポートする関数を示すように dwFlags メンバーのビットを設定します。
- 機能の場合は、機能構造体の該当するメンバーに、ドライバーまたはデバイスがサポートする値を設定します。
- ddRVal に DD_OK を返します。
DirectDraw は、DD_GETDRIVERINFODATA 構造体の dwExpectedSize メンバーで、想定されるデータ量をドライバーに通知します。ドライバーは、dwExpectedSize バイトを超えるデータを格納してはなりません。
DdGetDriverInfo の使用に伴う問題を避けるための注意事項は次のとおりです。
- DdGetDriverInfo が呼び出される順序に依存する処理を実装しないでください。たとえば、ドライバーの初期化処理を DdGetDriverInfo に組み込むことは避けてください。
- DdGetDriverInfo への呼び出しに基づいて DirectDraw のバージョンを判断しようとしないでください。
- DirectDraw がドライバーを呼び出す回数や、特定の GUID を照会する回数について何も仮定しないでください。DirectDraw が同じ GUID でドライバーを繰り返し照会することもあります。このような仮定をドライバーに実装すると、将来のランタイムとの互換性が損なわれます。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)