VIDEO_SHARE_MEMORY 구조체(ntddvdeo.h)
VIDEO_SHARE_MEMORY 구조는 지정된 프로세스와 공유할 사용자 모드 메모리 블록에 대한 비디오 미니포트 드라이버 요청에 사용됩니다.
구문
typedef struct _VIDEO_SHARE_MEMORY {
HANDLE ProcessHandle;
ULONG ViewOffset;
ULONG ViewSize;
PVOID RequestedVirtualAddress;
} VIDEO_SHARE_MEMORY, *PVIDEO_SHARE_MEMORY;
멤버
ProcessHandle
현재 프로세스에 대한 핸들입니다. 이 멤버는 일반적으로 Ntddk.h에 정의된 매크로인 NtCurrentProcess로 설정됩니다.
ViewOffset
프레임 버퍼의 시작 부분에서 바이트 오프셋을 나타냅니다. 이 멤버는 일반적으로 0으로 설정됩니다.
ViewSize
프레임 버퍼의 크기(바이트)를 나타냅니다.
RequestedVirtualAddress
프로세스 메모리에서 요청된 프레임 버퍼의 위치를 나타냅니다. 이 멤버는 일반적으로 NULL로 설정됩니다. 즉, 디스플레이 드라이버 작성기는 요청된 메모리의 정확한 위치를 신경 쓰지 않습니다. 이 멤버가 NULL 이 아닌 값으로 설정된 경우 디스플레이 드라이버 작성기는 프레임 버퍼를 해당 주소에 배치하려고 합니다. 이 경우 디스플레이 드라이버 작성기는 지정된 위치가 다른 용도로 아직 사용되지 않는지 확인해야 합니다.
설명
직접 그리기 같은 애플리케이션에서 비디오 메모리를 볼 수 있도록 VIDEO_SHARE_MEMORY 제공됩니다. 디스플레이 드라이버는 비디오 메모리에 대한 이러한 액세스를 직접 제공할 수 없지만 이를 위해 비디오 미니포트 드라이버를 호출할 수 있습니다. 디스플레이 드라이버는 미니포트 드라이버에 IOCTL_VIDEO_SHARE_VIDEO_MEMORY 요청을 전송하여 이 작업을 수행합니다. 미니포트 드라이버는 이 요청을 처리할 때 VIDEO_SHARE_MEMORY 구조체의 정보를 사용하고 위치가 지정되지 않은 경우 요청된 메모리의 실제 위치로 VIDEO_SHARE_MEMORY_INFORMATION 구조체를 채웁니다. 애플리케이션에 공유 메모리가 더 이상 필요하지 않은 경우 디스플레이 드라이버는 IOCTL_VIDEO_UNSHARE_VIDEO_MEMORY 요청을 수행하여 이 메모리를 해제할 수 있으며, VIDEO_SHARE_MEMORY 구조를 입력 버퍼로 사용합니다.
커널 모드 비디오 메모리에 매핑하는 데 사용되는 구조는 VIDEO_MEMORY 및 VIDEO_MEMORY_INFORMATION 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
헤더 | ntddvdeo.h(Ntddvdeo.h 포함) |
추가 정보
IOCTL_VIDEO_SHARE_VIDEO_MEMORY