次の方法で共有


DXGKARG_RESTOREMEMORYFORHOTUPDATE 構造体 (d3dkmddi.h)

ドライバーのホット更新プログラムのメモリを復元するために使用される引数。

構文

typedef struct _DXGKARG_RESTOREMEMORYFORHOTUPDATE {
  [in] DXGK_RESTOREMEMORYFORHOTUPDATEFLAGS Flags;
  [in] PMDL                                pDataMdl;
  [in] UINT                                MetaDataSize;
  [in] PVOID                               pMetaData;
} DXGKARG_RESTOREMEMORYFORHOTUPDATE;

メンバー

[in] Flags

DXGK_RESTOREMEMORYFORHOTUPDATEFLAGS構造体。 フラグが設定されている場合、他のすべての入力データは NULL に設定されます。 ドライバーは、復元操作中に割り当てられたすべてのメモリを削除できます。

[in] pDataMdl

復元するメモリ ページを記述する MDL (メモリ記述子リスト)。

ドライバーがこの関数からSTATUS_SUCCESSを返す場合、ドライバーは MDL の所有権を引き受けます。 ドライバーは、使用されなくなるまで MDL へのポインターを保持できます。 その後、ドライバーは MmFreePagesFromMdl(pDataMdl)ExFreePool(pDataMdl) を呼び出して、MDL ページと MDL 自体を解放する必要があります。

ドライバーは 、MmMapLockedPagesSpecifyCache または MmGetSystemAddressForMdlSafe を使用して、バッファーへの CPU ポインターを取得できます。

バッファーへの CPU ポインターを取得する方法の例を次に示します。

pBuffer = MmMapLockedPagesSpecifyCache(
    pMdl,
    KernelMode,
    MmCached,
    NULL,
    FALSE,
    NormalPagePriority | MdlMappingNoExecute);

pBuffer = MmGetSystemAddressForMdlSafe(pMdl, NormalPagePriority | MdlMappingNoExecute);

[in] MetaDataSize

pMetaData が指すバッファー内のバイト数。

[in] pMetaData

メモリ ブロックに関連付けられているメタデータへの仮想メモリ ポインター。

要件

要件
サポートされている最小のクライアント Windows 10 バージョン 1903
Header d3dkmddi.h