次の方法で共有


DXGKCB_ALLOCATECONTIGUOUSMEMORY コールバック関数 (d3dkmddi.h)

DXGKCB_ALLOCATECONTIGUOUSMEMORY は、IOMMU の論理アドレス空間に連続するメモリ領域を割り当てます。

構文

DXGKCB_ALLOCATECONTIGUOUSMEMORY DxgkcbAllocatecontiguousmemory;

NTSTATUS DxgkcbAllocatecontiguousmemory(
  [in]     IN_CONST_HANDLE hAdapter,
  [in/out] INOUT_PDXGKARGCB_ALLOCATECONTIGUOUSMEMORY pAllocateContiguousMemory
)
{...}

パラメーター

[in] hAdapter

ディスプレイ アダプターへのハンドル。

[in/out] pAllocateContiguousMemory

連続したメモリを割り当てる引数を含む DXGKARGCB_ALLOCATECONTIGUOUSMEMORY 構造体へのポインター。

戻り値

操作が成功した場合は、STATUS_SUCCESSを返します。 それ以外の場合は、適切な NTSTATUS エラー コードを返します。

備考

このコールバック関数は、mmAllocateContiguousMemory 関数に相当 Dxgkrnlです。

DXGKCB_XXX 関数は、Dxgkrnlによって実装されます。 このコールバック関数を使用するには、DXGKARGCB_ALLOCATECONTIGUOUSMEMORY の適切なメンバーを設定し、DXGKRNL_INTERFACEを介して DxgkCbAllocateContiguousMemory 呼び出します。

ページング操作中に GPU によってアクセスされるすべてのメモリ、または GpuMmu 経由でマップされるすべてのメモリを IOMMU にマップする必要があります。 Dxgkrnl は KMD にコールバックを提供し、1 つのステップで割り当てと再マップを許可します。

手記

ドライバーはメモリをロックしないでください。 Dxgkrnl がドライバーのロックされたページを管理、メモリが再マップされると、ドライバーに提供されるページの論理アドレスが物理アドレスと一致しなくなる可能性があります。

詳細については、IOMMU ベースの GPU 分離 を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows 10 バージョン 1803 (WDDM 2.4)
ヘッダー d3dkmddi.h
IRQL PASSIVE_LEVEL

関連項目

DXGKARGCB_ALLOCATECONTIGUOUSMEMORY

DXGKCB_FREECONTIGUOUSMEMORY

DXGKRNL_INTERFACE