IOCTL_VIDEO_SHARE_VIDEO_MEMORY IOCTL(ntddvdeo.h)
이 IOCTL은 사용자 모드 비디오 메모리를 선형 프레임 버퍼로 공유하는 프로세스에 의해 호출됩니다. 미니포트 드라이버는 VideoPortMapBankedMemory를 사용하여 프레임 버퍼를 호출자의 주소 공간에 매핑하여 이 IOCTL을 처리합니다. 그렇지 않으면 이 IOCTL은 IOCTL_VIDEO_MAP_VIDEO_MEMORY 동일합니다.
이 요청은 모달 및 비모달입니다. 미니포트 드라이버는 비디오 메모리 내에서 프레임 버퍼의 위치 크기를 반환해야 하며 프레임 버퍼 크기와 위치는 모드마다 다를 수 있지만(모달 특성), 이후의 설정 모드 작업(동일한 모드)으로 인해 비디오 메모리가 위치를 변경하지 않아야 합니다(비모달 특성).
이 IOCTL은 DCI에만 해당됩니다.
주 코드
입력 버퍼
VRP InputBuffer 에는 프레임 버퍼를 매핑하는 프로세스에 대한 핸들과 요청된 뷰 크기 및 오프셋을 공유 메모리에 지정하는 VIDEO_SHARE_MEMORY 구조가 포함되어 있습니다. 보기 크기와 오프셋이 어댑터의 메모리 크기를 초과해서는 안됩니다.
출력 버퍼
미니포트 드라이버는 VRP OutputBuffer의 VIDEO_SHARE_MEMORY_INFORMATION 구조를 반환합니다. 이 출력에는 비디오 메모리가 매핑되는 가상 주소, 매핑된 메모리의 뷰 크기(바이트) 및 뷰에 대한 오프셋이 포함됩니다.
상태 블록
미니포트 드라이버가 메모리를 성공적으로 매핑하면 STATUS_BLOCK 구조의 정보 멤버를 sizeof(VIDEO_SHARE_MEMORY_INFORMATION);로 설정합니다. 그렇지 않으면 미니포트 드라이버는 이 멤버를 0으로 설정합니다.
요구 사항
요구 사항 | 값 |
---|---|
헤더 | ntddvdeo.h |