다음을 통해 공유


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_MEMORYVIDEO_MEMORY_INFORMATION 참조하세요.

요구 사항

요구 사항
헤더 ntddvdeo.h(Ntddvdeo.h 포함)

추가 정보

IOCTL_VIDEO_SHARE_VIDEO_MEMORY

IOCTL_VIDEO_UNSHARE_VIDEO_MEMORY

VIDEO_SHARE_MEMORY_INFORMATION