다음을 통해 공유


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
머리글 d3dkmddi.h