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 +サイズ<= 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 |
ヘッダー | d3dukmdt.h (D3dumddi.h、D3dkmddi.h を含む) |
関連項目
D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE
DxgkDdiUpdatePageTableをする
pfnMapGpuVirtualAddressCbの