次の方法で共有


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

DXGKCB_ALLOCATEPAGESFORMDL は、IOMMU の論理アドレス空間にマップされるメモリ記述子リスト (MDL) の物理メモリ ページを割り当てます。

構文

DXGKCB_ALLOCATEPAGESFORMDL DxgkcbAllocatepagesformdl;

NTSTATUS DxgkcbAllocatepagesformdl(
  [in]     IN_CONST_HANDLE hAdapter,
  [in/out] INOUT_PDXGKARGCB_ALLOCATEPAGESFORMDL pAllocatePagesForMdl
)
{...}

パラメーター

[in] hAdapter

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

[in/out] pAllocatePagesForMdl

MDL のページを割り当てる引数を含む DXGKARGCB_ALLOCATEPAGESFORMDL 構造体へのポインター。

戻り値

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

注釈

このコールバック関数は、MmAllocatePagesForMdl 関数と同等の Windows グラフィックス ポート ドライバー関数です。

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

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

注意

DXGKCB_ALLOCATEPAGESFORMDLの呼び出しは 4 GB PAGE_SIZE MDL 制限に制限され、Dxgkrnl は常に MmAllocatePagesForMdlEx 関数の内部呼び出しでMM_ALLOCATE_FULLY_REQUIRED フラグを指定します。 また、ドライバーはメモリをロックしないようにする必要があります。 Dxgkrnl はドライバーのロックされたページを管理し、メモリが再マップされると、ドライバーに提供されるページの論理アドレスが物理アドレスと一致しなくなる可能性があります。

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

要件

要件
サポートされている最小のクライアント Windows 10 バージョン 1803 (WDDM 2.4)
Header d3dkmddi.h
IRQL PASSIVE_LEVEL

こちらもご覧ください

DXGKARGCB_ALLOCATEPAGESFORMDL

DXGKCB_FREEPAGESFROMMDL

DXGKRNL_INTERFACE