PDD_GETDRIVERINFO コールバック関数 (ddrawint.h)
DdGetDriverInfo 関数は、ドライバーがサポートする追加の DirectDraw および Direct3D 機能についてドライバーに対してクエリを実行します。
構文
PDD_GETDRIVERINFO PddGetdriverinfo;
DWORD PddGetdriverinfo(
PDD_GETDRIVERINFODATA unnamedParam1
)
{...}
パラメーター
unnamedParam1
クエリの実行に必要な情報を含む DD_GETDRIVERINFODATA 構造体を指します。
戻り値
DdGetDriverInfo は DDHAL_DRIVER_HANDLEDを返す必要があります。
注釈
ドライバーは、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 がドライバーを呼び出す回数、または DirectDraw が特定の GUID に対してクエリを実行する回数については、何も想定しないでください。 DirectDraw が同じ GUID を使用してドライバーを繰り返しプローブする可能性があります。 ドライバーでこれに関する前提条件を実装すると、将来のランタイムとの互換性が妨げられます。
要件
要件 | 値 |
---|---|
対象プラットフォーム | デスクトップ |
Header | ddrawint.h (Winddi.h を含む) |