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 은 커널 모드 드라이버에 대한 콜백을 제공하여 한 단계에서 할당 및 다시 매핑을 허용합니다.

참고

DXGKCB_ALLOCATEPAGESFORMDL 대한 호출은 4GB PAGE_SIZE MDL 제한으로 제한되며 Dxgkrnl은 항상 MmAllocatePagesForMdlEx 함수에 대한 내부 호출에서 MM_ALLOCATE_FULLY_REQUIRED 플래그를 지정합니다. 또한 드라이버는 메모리를 잠그지 않아야 합니다. Dxgkrnl 은 드라이버에 대해 잠긴 페이지를 관리하고 메모리가 다시 매핑되면 드라이버에 제공된 페이지의 논리적 주소가 더 이상 실제 주소와 일치하지 않을 수 있습니다.

자세한 내용은 IOMMU 기반 GPU 격리 를 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 10 버전 1803(WDDM 2.4)
머리글 d3dkmddi.h
IRQL PASSIVE_LEVEL

추가 정보

DXGKARGCB_ALLOCATEPAGESFORMDL

DXGKCB_FREEPAGESFROMMDL

DXGKRNL_INTERFACE