次の方法で共有


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

D3DKMTMapGpuVirtualAddress

DxgkDdiUpdatePageTableする

pfnMapGpuVirtualAddressCb

pfnReserveGpuVirtualAddressCb