다음을 통해 공유


PDD_MAPMEMORY 콜백 함수(ddrawint.h)

DdMapMemory 콜백 함수는 프레임 버퍼의 애플리케이션 수정 가능한 부분을 지정된 프로세스의 사용자 모드 주소 공간에 매핑하거나 메모리 매핑을 해제합니다.

구문

PDD_MAPMEMORY PddMapmemory;

DWORD PddMapmemory(
  PDD_MAPMEMORYDATA unnamedParam1
)
{...}

매개 변수

unnamedParam1

메모리 매핑 또는 매핑 해제 작업에 대한 세부 정보가 포함된 DD_MAPMEMORYDATA 구조를 가리킵니다.

반환 값

DdMapMemory는 다음 콜백 코드 중 하나를 반환합니다.

설명

DdMapMemory는 DdLock 에 대한 첫 번째 호출 전에 메모리 매핑을 수행하기 위해 호출 됩니다. lpMapMemory에서 DD_MAPMEMORYDATA 구조체의 fpProcess 멤버에서 드라이버가 반환한 핸들은 드라이버에서 수행한 모든 DdLock 호출에 전달됩니다.

마지막 DdUnlock 호출 후 메모리 매핑을 해제하기 위해 DdMapMemory도 호출됩니다.

드라이버 충돌을 방지하려면 드라이버가 애플리케이션에서 수정해서는 안 되는 프레임 버퍼의 일부를 매핑하면 안 됩니다.

디스플레이 드라이버는 비디오 미니포트 드라이버를 호출하여 메모리 매핑 또는 매핑 해제를 수행해야 합니다. 비디오 미니포트 드라이버에 동기 요청을 보내 메모리를 매핑하기 위해 디스플레이 드라이버는 IOCTL_VIDEO_SHARE_VIDEO_MEMORY 또는IOCTL_VIDEO_MAP_VIDEO_MEMORY 사용하여 EngDeviceIoControl GDI 함수를 호출합니다. 디스플레이 드라이버는 메모리 매핑을 해제하기 위해 비디오 미니포트 드라이버에 IOCTL_VIDEO_UNSHARE_VIDEO_MEMORY 또는 IOCTL_VIDEO_UNMAP_VIDEO_MEMORY 보냅니다. 자세한 내용은 비디오 미니포트 드라이버에 IOCTL 통신을 참조하세요.

DdMapMemory 는 사용하지 않도록 설정된 PDEV 로만 호출하여 메모리 매핑을 해제할 수 있습니다. PDEV는 디스플레이 드라이버의 DrvAssertMode 함수를 호출하여 사용하지 않도록 설정되거나 활성화됩니다. 자세한 내용은 PDEV 관리를 참조하세요.

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 ddrawint.h(Winddi.h 포함)

추가 정보

DD_MAPMEMORYDATA

DdLock

DdUnlock

EngDeviceIoControl

IOCTL_VIDEO_MAP_VIDEO_MEMORY

IOCTL_VIDEO_SHARE_VIDEO_MEMORY

IOCTL_VIDEO_UNMAP_VIDEO_MEMORY

IOCTL_VIDEO_UNSHARE_VIDEO_MEMORY