D3DDDI_MAPGPUVIRTUALADDRESS 構造体 (d3dukmdt.h)
D3DDDI_MAPGPUVIRTUALADDRESS構造体は pfnMapGpuVirtualAddressCb と共に使用され、GPU 仮想アドレス範囲を特定の割り当て範囲にマップしたり、Invalid または Zero 状態に設定したりできます。
構文
typedef struct D3DDDI_MAPGPUVIRTUALADDRESS {
D3DKMT_HANDLE hPagingQueue;
D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS BaseAddress;
D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS MinimumAddress;
D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS MaximumAddress;
D3DKMT_HANDLE hAllocation;
D3DKMT_ALIGN64 D3DGPU_SIZE_T OffsetInPages;
D3DKMT_ALIGN64 D3DGPU_SIZE_T SizeInPages;
D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE Protection;
D3DKMT_ALIGN64 UINT64 DriverProtection;
UINT Reserved0;
D3DKMT_ALIGN64 UINT64 Reserved1;
D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS VirtualAddress;
D3DKMT_ALIGN64 UINT64 PagingFenceValue;
} D3DDDI_MAPGPUVIRTUALADDRESS;
メンバー
hPagingQueue
操作に使用されるデバイス ページング キューのハンドル。
BaseAddress
(省略可能)NULL 以外の場合、ビデオ メモリ マネージャーはこのアドレスをマッピングのベース アドレスとして使用しようとします。 BaseAddress から BaseAddress+Size までの範囲が空きでない場合は、以前に pfnReserveGpuVirtualAddressCb または pfnMapGpuVirtualAddressCb を呼び出して取得した範囲に属している必要があります。
BaseAddress の値はバイト単位で、CPU ページの境界に合わせる必要があります。 NULL が指定されている場合、ビデオ メモリ マネージャーは、指定された MinimumAddress と MaximumAddress 内の割り当てのベース アドレスを選択 します。
MinimumAddress
(省略可能)マップされた範囲に対して考慮する最小 GPU 仮想アドレスを指定します。
MinimumAddress の値はバイト単位で、4 KB ページに揃える必要があります。 BaseAddress != NULL の場合、このパラメーターは無視されます。
MaximumAddress
(省略可能)マップされた範囲に対して考慮する最大 GPU 仮想アドレスを指定します。 ビデオ メモリ マネージャーでは、 BaseAddress+Size<= MaximumAddress が保証されます。 MaximumAddress が NULL に設定されている場合、ビデオ メモリ マネージャーは制限を適用しません。
MaximumAddress の値はバイト単位で、4 KB ページに合わせる必要があります。 BaseAddress != NULL の場合、このパラメーターは無視されます。
hAllocation
GPU 仮想アドレス空間にマップされている割り当てを処理します。 Protection.NoAccess または Protection.Zero を指定する場合は NULL にする必要があります。
OffsetInPages
マップする必要がある指定された割り当て内の開始ページへのオフセットを 4 KB 単位で指定します。
SizeInPages
マップする範囲のサイズを 4 KB ページで指定します。
Protection
マップされる GPU 仮想アドレスの保護を指定するD3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE構造体。
DriverProtection
割り当てられている VA 範囲に関連付けられているドライバー固有の 64 ビット保護値を指定します。 指定されたドライバー保護は、この仮想アドレス範囲に対応するページ テーブル エントリの DxgkDdiUpdatePageTable の呼び出しで使用されます。
Reserved0
このメンバーは予約されており、0 に設定する必要があります。
Reserved1
このメンバーは予約されており、0 に設定する必要があります。
VirtualAddress
割り当てに割り当てられた仮想アドレス。
PagingFenceValue
GPU でマップ操作が完了したときにビデオ メモリ マネージャーが通知するデバイス ページング フェンス値。 ユーザー モード ドライバーは、このフェンスが廃止されるか、そのフェンスの CPU または GPU で明示的に待機してから、GPU がマップされた範囲にアクセスできるようにする必要があります。または回復不能なエラーが発生する可能性があります。 0 のフェンス値が返される可能性があります。つまり、操作は既に完了しています。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 10 |
サポートされている最小のサーバー | Windows Server 2016 |
Header | d3dukmdt.h (D3dumddi.h、D3dkmddi.h を含む) |