다음을 통해 공유


보장된 계약 DMA 버퍼 모델 사용

Windows Vista용 디스플레이 드라이버 모델은 렌더링 디바이스에 대한 DMA 버퍼 및 패치 위치 목록의 크기를 보장합니다. 패치 위치 목록에는 DMA 버퍼의 명령에서 참조하는 리소스의 실제 메모리 주소가 포함됩니다.

보장된 계약 모드에서 사용자 모드 디스플레이 드라이버는 사용자 모드 디스플레이 드라이버가 명령 버퍼를 채우고 pfnRenderCb 를 호출하여 디스플레이 미니포트 드라이버에 제출할 때 변환에 사용할 수 있는 DMA 버퍼 및 패치 위치 목록의 정확한 크기를 알고 있습니다. pfnRenderCb를 호출할 때마다 사용자 모드 표시 드라이버는 다음 변환에 사용할 수 있는 DMA 버퍼 및 패치 위치 목록의 크기(즉, pfnRenderCb에 대한 다음 호출)를 받습니다.

비디오 메모리 관리자는 다음 변환이 완료될 때까지 해당 디바이스에 대한 DMA 버퍼 및 패치 위치 목록을 자르지 않도록 보장합니다. 디스플레이 미니포트 드라이버는 하나의 명령 버퍼를 정확히 하나의 DMA 버퍼와 하나의 패치 위치 목록으로 변환할 수 있어야 합니다. 이 변환을 수행할 수 없는 경우 사용자 모드 명령 버퍼는 정의상 유효하지 않습니다. 디스플레이 미니포트 드라이버는 변환 중에 DMA 버퍼 공간 및 패치 위치 목록이 없음을 나타내는 상태 반환할 수 없습니다. 이렇게 하면 메모리 관리자가 보장된 DMA 계약의 요구 사항을 충족하지 못했기 때문에 비디오 메모리 관리자 버그가 시스템을 검사합니다.