DMA 버퍼에 대한 세그먼트 지정

디스플레이 미니포트 드라이버는 DMA 버퍼를 할당할 수 있는 조리개 세그먼트를 지정할 수 있습니다. DMA 버퍼는 연속 잠금 시스템 메모리로 할당할 수도 있습니다.

비디오 메모리 관리자는 애플리케이션에 필요할 때 DMA 버퍼를 할당하고 삭제합니다. 따라서 비디오 메모리 관리자에는 DMA 버퍼를 할당할 수 있는 세그먼트 집합이 필요합니다. 세그먼트 집합은 하나의 세그먼트로만 구성될 수 있습니다.

Microsoft DirectX 그래픽 커널 하위 시스템에서 디스플레이 미니포트 드라이버의 DxgkDdiCreateDevice 함수를 호출하여 그래픽 컨텍스트 디바이스를 만들 때 디스플레이 미니포트 드라이버는 비디오 메모리 관리자가 DMA 버퍼를 할당할 수 있는 세그먼트 집합을 지정할 수 있습니다. 디스플레이 미니포트 드라이버가 DXGK_DEVICEINFO 구조체의 DmaBufferSegmentSet 멤버를 0으로 설정하면 비디오 메모리 관리자는 DMA 버퍼에 대해 연속된 비페이지 메모리를 할당합니다. 이 경우 디스플레이 미니포트 드라이버는 PCI 주기를 사용하여 메모리에 액세스해야 하며 DMA를 통해 메모리의 실제 주소에서 직접 데이터를 보내야 합니다. 디스플레이 미니포트 드라이버가 DmaBufferSegmentSet 를 0이 아닌 값으로 설정하는 경우 비디오 메모리 관리자는 페이저블 메모리를 할당하고 페이지를 지정된 조리개 세그먼트에 매핑합니다. 조리개 세그먼트 내의 페이지는 DxgkDdiSubmitCommand 함수를 호출하여 디스플레이 미니포트 드라이버에 표시됩니다.

기본 비디오 메모리 관리자 모델은 로컬 비디오 메모리의 DMA 버퍼를 지원하지 않습니다.