다음을 통해 공유


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