次の方法で共有


D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION構造体 (d3dukmdt.h)

D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION 仮想アドレスの更新操作について説明します。

構文

typedef struct _D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION {
  D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION_TYPE OperationType;
  union {
    struct {
      D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS BaseAddress;
      D3DKMT_ALIGN64 D3DGPU_SIZE_T          SizeInBytes;
      D3DKMT_HANDLE                         hAllocation;
      D3DKMT_ALIGN64 D3DGPU_SIZE_T          AllocationOffsetInBytes;
      D3DKMT_ALIGN64 D3DGPU_SIZE_T          AllocationSizeInBytes;
    } Map;
    struct {
      D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS   BaseAddress;
      D3DKMT_ALIGN64 D3DGPU_SIZE_T            SizeInBytes;
      D3DKMT_HANDLE                           hAllocation;
      D3DKMT_ALIGN64 D3DGPU_SIZE_T            AllocationOffsetInBytes;
      D3DKMT_ALIGN64 D3DGPU_SIZE_T            AllocationSizeInBytes;
      D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE Protection;
      D3DKMT_ALIGN64 UINT64                   DriverProtection;
    } MapProtect;
    struct {
      D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS   BaseAddress;
      D3DKMT_ALIGN64 D3DGPU_SIZE_T            SizeInBytes;
      D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE Protection;
    } Unmap;
    struct {
      D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS SourceAddress;
      D3DKMT_ALIGN64 D3DGPU_SIZE_T          SizeInBytes;
      D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS DestAddress;
    } Copy;
  };
} D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION;

メンバーズ

OperationType

Map

指定された仮想アドレス範囲を特定の割り当て範囲にマップします。 割り当ては、提出時またはマッピング時に常駐する必要はありません。 読み取り/書き込み保護はページに設定されます。 ページ DriverProtection は 0 に設定されます。

Map.BaseAddress

更新する GPU 仮想アドレス範囲の BaseAddress を指定します。 値はバイト単位で、4 KB のアラインが必要です。

BaseAddress から BaseAddress+SizeInBytes までの範囲全体が、予約済み (ゼロ) または マップされた 状態である必要があります。または、pfnUpdateGpuVirtualAddressCb 操作は失敗します。 すべての操作の仮想アドレス範囲は、pfnReserveGpuVirtualAddressCb 呼び出しと同じ によって予約されている仮想アドレス範囲に属している必要があります。

Map.SizeInBytes

更新する範囲のサイズをバイト単位で指定します。 値は 4 KB に揃える必要があります。

Map.hAllocation

範囲をマップする必要がある割り当てを指定します。

Map.AllocationOffsetInBytes

マップする割り当ての最初のページへのオフセットをバイト単位で指定します。 値は 4 KB に揃える必要があります。

Map.AllocationSizeInBytes

マップする割り当て範囲のサイズをバイト単位で指定します。 値は 4 KB に揃え、Map.SizeInBytes 未満にする必要があります。 この値が 0 の場合は、Map.SizeInBytes 使用されます。

この値が Map.SizeInBytes より大きい場合、Map.SizeInBytes は、その倍数である必要があります。 この場合 Map.SizeInBytes/Map.AllocationSizeInBytes 仮想アドレス範囲は、同じ割り当て範囲にマップされます。

MapProtect

指定された仮想アドレス範囲を特定の割り当て範囲にマップします。 割り当ては、提出時またはマッピング時に常駐する必要はありません。 ページ保護は、操作で指定されます。

MapProtect.BaseAddress

更新する GPU 仮想アドレス範囲の BaseAddress を指定します。 値はバイト単位で、4 KB のアラインが必要です。

BaseAddress から BaseAddress+SizeInBytes までの範囲全体が、予約済み (ゼロ)またはマップされた 状態である必要があります。または、pfnUpdateGpuVirtualAddressCb 失敗します。 すべての操作の仮想アドレス範囲は、pfnReserveGpuVirtualAddressCb 呼び出しと同じ によって予約されている仮想アドレス範囲に属している必要があります。

MapProtect.SizeInBytes

更新する範囲のサイズをバイト単位で指定します。 値は 4 KB に揃える必要があります。

MapProtect.hAllocation

範囲をマップする必要がある割り当てを指定します。

MapProtect.AllocationOffsetInBytes

マップする割り当ての最初のページへのオフセットをバイト単位で指定します。 値は 4 KB に揃える必要があります。

MapProtect.AllocationSizeInBytes

マップする割り当て範囲のサイズをバイト単位で指定します。 値は 4 KB でアラインする必要があり、Map より小さくする必要があります。SizeInBytes. この値が 0 の場合は、Map.SizeInBytes 使用されます。

この値が Map.SizeInBytes より小さい場合、map.SizeInBytes 倍数である必要があります。 この場合 Map.SizeInBytes/Map.AllocationSizeInBytes 仮想アドレス範囲は、同じ割り当て範囲にマップされます。

MapProtect.Protection

ページの API 定義保護を指定します。

MapProtect.DriverProtection

ページのドライバー固有の保護を指定します。

Unmap

指定した仮想アドレス範囲を、0 状態または無効な 状態 設定します。

Unmap.BaseAddress

0 状態に戻す GPU 仮想アドレス範囲の BaseAddress を指定します。 値はバイト単位で、4 KB のアラインが必要です。

Unmap.SizeInBytes

解放する範囲のサイズをバイト単位で指定します。 値は 4 KB に揃える必要があります。

Unmap.Protection

定義は、マッピング解除後のページ テーブルエントリの状態です。0 または noAccess します。

Copy

コピー操作では、ソース GPU 仮想アドレス範囲から宛先範囲にすべてのマッピングがコピーされます。 ソースと宛先の範囲は交差できます。 両方の範囲が予約済み (ゼロ) の仮想アドレス範囲に属している必要があります。

BaseAddress

ソース仮想アドレス範囲の開始仮想アドレスを指定します。 値はバイト単位で、4 KB のアラインが必要です。

Copy.SourceAddress

Copy.SizeInBytes

コピーする範囲のサイズをバイト単位で指定します。 値は 4 KB に揃える必要があります。

Copy.DestAddress

宛先仮想アドレス範囲の開始仮想アドレスを指定します。 値はバイト単位で、4 KB のアラインが必要です。

必要条件

要件 価値
サポートされる最小クライアント Windows 10
サポートされる最小サーバー Windows Server 2016
ヘッダー d3dukmdt.h (D3dumddi.h、D3dkmddi.h を含む)

関連項目

pfnReserveGpuVirtualAddressCb

pfnUpdateGpuVirtualAddressCb