DD_GETDRIVERINFO2DATA構造体 (d3dhal.h)
DirectX 8.0 以降のバージョンのみ。
DD_GETDRIVERINFO2DATAは、DdGetDriverInfo 呼び出しでDD_GETDRIVERINFODATAの guidInfo メンバーにGUID_GetDriverInfo2が指定されている場合、DD_GETDRIVERINFODATA 構造体の lpvData メンバーで渡されます。
構文
typedef struct _DD_GETDRIVERINFO2DATA {
DWORD dwReserved;
DWORD dwMagic;
DWORD dwType;
DWORD dwExpectedSize;
} DD_GETDRIVERINFO2DATA;
メンバーズ
dwReserved
予約済みフィールドを指定します。 ドライバーは読み取りまたは書き込みできません。
dwMagic
マジックナンバーを指定します。 GetDriverInfo2 呼び出しの場合は、値がD3DGDI2_MAGIC。 それ以外の場合、この構造体は実際には DD_STEREOMODE 呼び出しです。
dwType
要求される情報の種類を指定します。次のD3DGDI2_TYPE_Xxx 値のいずれかを含めることができます。 ドライバーは、このメンバーを読み取る (書き込まない) 必要があります。
値の | 意味 |
---|---|
D3DGDI2_TYPE_DEFER_AGP_FREES |
NT ベースのオペレーティング システムのみ。 サーフェスの AGP メモリ 破棄を適切に処理する必要があることをドライバーに通知するために使用されます。 ランタイムは、DD_GETDRIVERINFODATA データ構造の lpvData フィールド内の DD_FREE_DEFERRED_AGP_DATA 構造体へのポインターを提供します。 ドライバーは、表示モードの変更が発生する前に、この通知を受け取ることがあります。 ランタイムは、表示モードの変更を実行するために使用される場合にのみ、この通知を送信します。 ドライバーは、サーフェスを作成したプロセスに対してサーフェスを破棄するプロセスのプロセス識別子 (PID) を確認する必要があります。 PID が異なる場合、アプリケーションがまだメモリを使用している可能性があるため、ドライバーは AGP メモリのユーザー モード マッピングを破棄しないようにする必要があります。 |
D3DGDI2_TYPE_DEFERRED_AGP_AWARE |
NT ベースのオペレーティング システムのみ。 ランタイムが適切なタイミングでD3DGDI2_TYPE_FREE_DEFERRED_AGPおよびD3DGDI2_TYPE_DEFER_AGP_FREES通知を送信することをドライバーに通知するために使用されます (たとえば、最後に未処理の AGP メモリ ロックが解除された後など)。 ランタイムは、DD_GETDRIVERINFODATA データ構造の lpvData フィールド内の DD_DEFERRED_AGP_AWARE_DATA 構造体へのポインターを提供します。 |
D3DGDI2_TYPE_DXVERSION | アプリケーションで使用されている現在の DX ランタイム バージョンをドライバーに通知するために使用されます。 ランタイムは、DD_GETDRIVERINFODATA データ構造の lpvData フィールド内の DD_DXVERSION 構造体へのポインターを提供します。 |
D3DGDI2_TYPE_FREE_DEFERRED_AGP |
NT ベースのオペレーティング システムのみ。 AGP メモリ のすべてのユーザー モード マッピングを破棄しても安全であることをドライバーに通知するために使用されます。 ドライバーは、サーフェスが破棄され、D3DGDI2_TYPE_DEFER_AGP_FREES通知を受け取ったときに、これらのユーザー モード マッピングを保持しました。 ランタイムは、DD_GETDRIVERINFODATA データ構造の lpvData フィールド内の DD_FREE_DEFERRED_AGP_DATA 構造体へのポインターを提供します。 ドライバーは、プロセス内のすべてのディスプレイ デバイスが、表示モードの変更時にロックされていたサーフェス、テクスチャ、頂点バッファー、インデックス バッファーの使用を停止すると、この通知を受け取ります。 |
D3DGDI2_TYPE_GETADAPTERGROUP | DirectX 9.0 以降のバージョンのみを します。 複数ヘッド ビデオ カードの一部であるアダプターのグループの ID をドライバーに照会するために使用されます。 このグループは、ビデオ メモリや 3D アクセラレータなどのビデオ ハードウェアを共有します。 ドライバーは、DD_GETDRIVERINFODATAデータ構造の lpvData フィールドが指すデータ構造を DD_GETADAPTERGROUPDATAに設定する必要があります。 |
D3DGDI2_TYPE_GETD3DCAPS8 | この型は、ランタイムがデバイスの DirectX 8.0 スタイル機能を提供するD3DCAPS8構造体の受信を要求することを示します。 ドライバーは、初期化されたD3DCAPS8構造体をDD_GETDRIVERINFODATA構造体の lpvData フィールドにコピーする必要があります。 |
D3DGDI2_TYPE_GETD3DCAPS9 |
DirectX 9.0 以降のバージョンでのみ必要です。 この型は、ランタイムがデバイスの DirectX 9.0 スタイル機能を提供するD3DCAPS9構造体の受信を要求することを示します。 ドライバーは、初期化されたD3DCAPS9構造体をDD_GETDRIVERINFODATA構造体の lpvData フィールドにコピーする必要があります。 |
D3DGDI2_TYPE_GETD3DQUERY | DirectX 9.0 以降のバージョンのみを します。 サポートされている特定のクエリの種類に関する情報をドライバーに照会するために使用されます。 ドライバーは、DD_GETDRIVERINFODATAデータ構造の thelpvData フィールドが指すデータ構造を DD_GETD3DQUERYDATAに設定する必要があります。 |
D3DGDI2_TYPE_GETD3DQUERYCOUNT | DirectX 9.0 以降のバージョンのみを します。 サポートされているクエリの種類の数をドライバーに照会するために使用されます。 ドライバーは、DD_GETDRIVERINFODATAデータ構造の lpvData フィールドが指すデータ構造を DD_GETD3DQUERYCOUNTDATAに設定する必要があります。 |
D3DGDI2_TYPE_GETDDIVERSION | DirectX 9.0 以降のバージョンのみを します。 ドライバーがサポートする DDI のバージョンをドライバーに照会するために使用されます。この DDI バージョンは、この要求を行う DirectX のバージョンによって異なります。 ドライバーは、DD_GETDRIVERINFODATAデータ構造の lpvData フィールドが指す DD_GETDDIVERSIONDATA 構造体の dwDDIVersion メンバーを適切な DDI バージョンに設定する必要があります。 |
D3DGDI2_TYPE_GETEXTENDEDMODE | DirectX 9.0 以降のバージョンのみを します。 サポートされている特定の拡張表示モードに関する情報をドライバーに照会するために使用されます。 ドライバーは、DD_GETDRIVERINFODATAデータ構造の lpvData フィールドが指すデータ構造を DD_GETEXTENDEDMODEDATAに設定する必要があります。 |
D3DGDI2_TYPE_GETEXTENDEDMODECOUNT | DirectX 9.0 以降のバージョンのみを します。 サポートされている拡張表示モードの数をドライバーに照会するために使用されます。 ドライバーは、DD_GETDRIVERINFODATAデータ構造の lpvData フィールドが指すデータ構造を DD_GETEXTENDEDMODECOUNTDATAに設定する必要があります。 |
D3DGDI2_TYPE_GETFORMAT | ドライバーから特定のサーフェス形式を照会するために使用されます。 DD_GETDRIVERINFODATA データ構造の lpvData フィールドが指すデータ構造が DD_GETFORMATDATA。 |
D3DGDI2_TYPE_GETFORMATCOUNT | ドライバーでサポートされている DirectX 8.0 以降のスタイルのサーフェス形式の数を要求するために使用されます。 DD_GETDRIVERINFODATAの thelpvData フィールドが指すデータ構造は DD_GETFORMATCOUNTDATA。 |
D3DGDI2_TYPE_GETMULTISAMPLEQUALITYLEVELS | DirectX 9.0 以降のバージョンのみを します。 サポートされている特定のレンダー ターゲット形式の複数サンプル品質レベルの数をドライバーに照会するために使用されます。 ディスプレイ デバイスがマスク可能またはサブマスク可能なマルチサンプリングをサポートしているかどうかに関係なく、デバイスのドライバーは、D3DMULTISAMPLE_NONMASKABLEの複数サンプルの種類の品質レベルの数を提供する必要があります。 ドライバーは、DD_GETDRIVERINFODATA データ構造の lpvData フィールドが指すデータ構造を DD_MULTISAMPLEQUALITYLEVELSDATAに設定する必要があります。 |
dwExpectedSize
要求された情報の予想されるサイズをバイト単位で指定します。 ドライバーは、このメンバーを読み取る (書き込まない) 必要があります。
備考
GetDriverInfo2 要求が行われている場合、DD_GETDRIVERINFODATA構造体の dwExpectedSize メンバーは使用されません。 この場合、その値は未定義であり、無視する必要があります。 代わりに、データの実際の予想されるサイズは、DD_GETDRIVERINFO2DATAの dwExpectedSize メンバーにあります。
次のコード フラグメントは、GetDriverInfo2 処理する方法を示しています。
D3DCAPS8 myD3DCaps8 = { ... };
DWORD CALLBACK
DdGetDriverInfo(LPDDHAL_GETDRIVERINFODATA lpData)
{
if (MATCH_GUID((lpData->guidInfo), GUID_GetDriverInfo2))
{
ASSERT(NULL != lpData);
ASSERT(NULL != lpData->lpvData);
// Is this a call to GetDriverInfo2 or DDStereoMode?
if (((DD_GETDRIVERINFO2DATA*)(lpData->lpvData))->dwMagic
== D3DGDI2_MAGIC)
{
// Yes, it's a call to GetDriverInfo2, fetch the
// DD_GETDRIVERINFO2DATA data structure.
DD_GETDRIVERINFO2DATA* pgdi2 = lpData->lpvData;
ASSERT(NULL != pgdi2);
// What type of request is this?
switch (pgdi2->dwType)
{
case D3DGDI2_TYPE_GETD3DCAPS8:
{
// The runtime is requesting the DX8 D3D caps
// so copy them over now. It should be noted
// that the dwExpectedSize field of
// DD_GETDRIVERINFODATA is not used for
// GetDriverInfo2 calls and should be ignored.
size_t copySize = min(
sizeof(myD3DCaps8), pgdi2->dwExpectedSize);
memcpy(lpData->lpvData, &myD3DCaps8, copySize);
lpData->dwActualSize = copySize;
lpData->ddRVal = DD_OK;
return DDHAL_DRIVER_HANDLED;
}
default:
// For any other GetDriverInfo2 types not handled
// or understood by the driver set a ddRVal of
// DDERR_CURRENTLYNOTAVAIL and return
// DDHAL_DRIVER_HANDLED.
return DDHAL_DRIVER_HANDLED;
}
}
else
{
// It must be a call to request for stereo mode support.
// Fetch the stereo mode data
DD_STEREOMODE* pStereoMode = lpData->lpvData;
ASSERT(NULL != pStereoMode);
// Process the stereo mode request...
lpData->dwActualSize = sizeof(DD_STEREOMODE);
lpData->ddRVal = DD_OK;
return DDHAL_DRIVER_HANDLED;
}
}
// Handle any other device GUIDs...
} // DdGetDriverInfo
D3DCAPS8とD3DCAPS9の詳細については、DirectX SDK のドキュメントを参照してください。
必要条件
要件 | 価値 |
---|---|
ヘッダー | d3dhal.h (D3dhal.h を含む) |
関連項目
DD_MULTISAMPLEQUALITYLEVELSDATA
DdGetDriverInfo の