다음을 통해 공유


DXGKCB_RESERVEGPUVIRTUALADDRESSRANGE 콜백 함수(d3dkmddi.h)

커널 모드 디스플레이 미니포트 드라이버는 DXGKCB_RESERVEGPUVIRTUALADDRESSRANGE 호출하여 프로세스를 만드는 동안 GPU(그래픽 처리 장치) 가상 주소 범위를 예약할 수 있습니다.

구문

DXGKCB_RESERVEGPUVIRTUALADDRESSRANGE DxgkcbReservegpuvirtualaddressrange;

NTSTATUS DxgkcbReservegpuvirtualaddressrange(
  [in]     IN_CONST_HANDLE hAdapter,
  [in/out] INOUT_PDXGKARGCB_RESERVEGPUVIRTUALADDRESSRANGE pArgs
)
{...}

매개 변수

[in] hAdapter

디스플레이 어댑터에 대한 핸들입니다.

[in/out] pArgs

작업을 설명하는 DXGKARGCB_RESERVEGPUVIRTUALADDRESSRANGE 구조체입니다.

반환 값

DXGKCB_RESERVEGPUVIRTUALADDRESSRANGE 성공하면 STATUS_SUCCESS 반환합니다. 그렇지 않으면 Ntstatus.h에 정의된 오류 코드 중 하나를 반환합니다.

설명

GPU 가상 주소 범위 예약은 프로세스를 만드는 동안(예: DxgkDdiCreateProcess 호출 내에서) 가능하며 다른 시간에는 유효하지 않습니다.

예약은 시스템 디바이스와 컨텍스트가 있는 시스템 프로세스뿐만 아니라 일반 프로세스에서도 가능합니다.

루트 페이지 테이블의 첫 번째 항목(페이지 테이블 항목 인덱스 0)은 항상 비디오 메모리 관리자에 의해 유효하지 않은 것으로 초기화되고 드라이버 예약은 페이지 테이블 항목 인덱스 1에서 시작됩니다. 특정 페이지 테이블 항목을 비디오 메모리 관리자와 커널 모드 드라이버 간에 공유할 수 없으므로 드라이버 예약은 항상 리프 페이지 테이블이 다루는 가상 주소 공간의 정확한 배수여야 합니다. 드라이버에서 예약한 페이지 테이블 항목은 비디오 메모리 관리자에 의해 유효하지 않은 것으로 초기화되며 드라이버가 관리하는 내부적으로 할당된 페이지 테이블을 참조하기 위해 드라이버에서 덮어쓸 수 있습니다. 비디오 메모리 관리자는 해당 페이지 테이블이 상주할 때마다 예약된 페이지 테이블 항목을 유효하지 않은 것으로 업데이트합니다.

DXGKCB_XXX 함수는 Dxgkrnl에 의해 구현됩니다. 이 콜백 함수를 사용하려면 DXGKARGCB_RESERVEGPUVIRTUALADDRESSRANGE 적절한 멤버를 설정한 다음 DXGKRNL_INTERFACE 통해 DxgkCbReserveGpuVirtualAddressRange를 호출합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 10(WDDM 2.0)
지원되는 최소 서버 Windows Server 2016
대상 플랫폼 데스크톱
머리글 d3dkmddi.h(Dispmprt.h 포함)
IRQL <= PASSIVE_LEVEL

추가 정보

DXGKARGCB_RESERVEGPUVIRTUALADDRESSRANGE

DxgkDdiCreateProcess

DXGKRNL_INTERFACE