次の方法で共有


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を返します。
ドライバーが機能をサポートしていない場合は、 ddRVal を DDERR_CURRENTLYNOTAVAIL に設定し、 を返す必要があります。

DirectDraw は、DD_GETDRIVERINFODATA構造体の dwExpectedSize メンバー内の予想されるデータ量をドライバーに通知します。 ドライバーは 、dwExpectedSize バイトを超えるデータを入力しないでください。

DdGetDriverInfo の使用に関する問題を回避するには:

  • DdGetDriverInfo が呼び出される順序に基づいて依存関係を実装しないでください。 たとえば、ドライバーの初期化手順を DdGetDriverInfo にフックしないようにします。
  • DdGetDriverInfo の呼び出しに基づいて DirectDraw のバージョンを確認しないでください。
  • DirectDraw がドライバーを呼び出す回数、または DirectDraw が特定の GUID に対してクエリを実行する回数については、何も想定しないでください。 DirectDraw が同じ GUID を使用してドライバーを繰り返しプローブする可能性があります。 ドライバーでこれに関する前提条件を実装すると、将来のランタイムとの互換性が妨げられます。

要件

要件
対象プラットフォーム デスクトップ
Header ddrawint.h (Winddi.h を含む)

こちらもご覧ください

DD_GETDRIVERINFODATA

DrvEnableDirectDraw

DrvGetDirectDrawInfo