DXGK_SEGMENTDESCRIPTOR構造体 (d3dkmddi.h)
DXGK_SEGMENTDESCRIPTOR 構造体には、ドライバーがサポートするセグメントに関する情報が含まれています。
構文
typedef struct _DXGK_SEGMENTDESCRIPTOR {
[out] PHYSICAL_ADDRESS BaseAddress;
[out] PHYSICAL_ADDRESS CpuTranslatedAddress;
[out] SIZE_T Size;
[out] UINT NbOfBanks;
[out] SIZE_T *pBankRangeTable;
[out] SIZE_T CommitLimit;
[out] DXGK_SEGMENTFLAGS Flags;
} DXGK_SEGMENTDESCRIPTOR;
メンバーズ
[out] BaseAddress
グラフィックス処理装置 (GPU) によって決定されるセグメントのベース アドレス。 セグメント内でビデオ メモリ マネージャーがページングした割り当ての物理アドレスには、BaseAddress が指定したベース アドレスからオフセットされた GPU アドレス 割り当てられます。
ビデオ メモリ マネージャーは、AGP タイプのアパーチャ セグメントのベース アドレス (Agp ビット フィールド フラグが Flags メンバーで指定されている) を無視し、代わりに GPU が配置されているバスで決定された AGP アパーチャ内のセグメントの実際の物理アドレスを使用します。 このような状況では、ドライバーは、変換を必要とせずに直接割り当てのために生成されたビデオ メモリ マネージャーアドレスを使用できます。
[out] CpuTranslatedAddress
GPU が接続されているバスを基準としたセグメントのベース アドレス。 たとえば、GPU が PCI バスに接続されている場合、CpuTranslatedAddress は、PCI ベース アドレス レジスタ (BAR) で指定されている使用可能な範囲のベース アドレスです。 ドライバーは、Flags メンバーの CpuVisible ビット フィールド フラグを設定することによって、CPU アクセス可能なセグメントを指定する場合にのみ、このアドレスを指定します。
このメンバーは、AGP タイプの絞りセグメントを含む絞りセグメントでは無視されます。 唯一の例外は、ユーザー モード ディスプレイ ドライバーがプライマリ割り当ての代替仮想アドレスを設定していない場合 (つまり、pfnLockCb 関数の呼び出し中に、D3DDDICB_LOCKFLAGS 構造体の Flags メンバーで UseAlternateVA 設定していない場合) に発生します。
ビデオ メモリ マネージャーが仮想アドレスを物理範囲にマップする前に、ビデオ メモリ マネージャーは、バスの CPU ビューに基づいてこの物理アドレスを変換し、ドライバーが特定の場所にあるセグメントのコンテンツにアクセスするアパーチャを設定できるように、操作についてドライバーに通知します。
[out] Size
セグメントのサイズ (バイト単位)。 このサイズは、ネイティブ ホスト ページ サイズの倍数である必要があります (たとえば、x86 アーキテクチャでは 4 KB)。
AGP タイプの絞りセグメント (Agp ビット フィールド フラグが Flags メンバーで指定されている) の場合、ビデオ メモリ マネージャーはできるだけ多くのアパーチャ領域を割り当てるので、このメンバーは無視されます。
[out] NbOfBanks
銀行処理が使用されている場合のセグメント内のバンクの数 (つまり、UseBanking ビット フィールド フラグが Flags メンバーで設定されている場合)。
[out] pBankRangeTable
セグメント内の各バンクを区切る範囲を示す値の配列。 ドライバーは、Flags メンバーの UseBanking ビット フィールド フラグも設定する場合にのみ、この配列を指定します。
配列は、NbOfBanks番目のバンク (つまり、各バンクのセグメントへの終了オフセット) を介して、最初のバンクの終了アドレスを指定します。 次の点に注意してください。
バンクは連続しています。
最初のバンクは、セグメントのオフセット 0 から始まります。
最後のバンクはセグメントの末尾で終了するため、ドライバーは最後のバンクの終了アドレスを指定する必要はありません。
[out] CommitLimit
セグメントにコミットできる最大バイト数。 メモリ セグメントの場合、コミット制限は、Size メンバーで指定されているセグメントのサイズと常に同じです。 絞りセグメントの場合、ドライバーは、少量の物理メモリを持つシステム上のセグメントにコミットできるメモリの量を制限できます。
[out] Flags
セグメントのプロパティをビット フィールド フラグで識別する DXGK_SEGMENTFLAGS 構造体。
AGP タイプの絞りセグメントの場合、ドライバーは、DXGK_SEGMENTFLAGSに含まれる共用体の構造体の Agp メンバーを排他的に設定する必要があることに注意してください。 AGP タイプの絞りセグメントは絞りであり、CPU からアクセスできますが、他のメンバーが設定されている場合、アダプターは初期化に失敗します。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows Vista |
ヘッダー | d3dkmddi.h (D3dkmddi.h を含む) |
関連項目
DxgkDdiQueryAdapterInfoの
pfnLockCbの