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 を含む)

こちらもご覧ください

D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE

D3DKMTMapGpuVirtualAddress

DxgkDdiUpdatePageTable

pfnMapGpuVirtualAddressCb

pfnReserveGpuVirtualAddressCb