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
是当前进程的句柄。 此成员通常设置为 NtCurrentProcess,这是 Ntddk.h 中定义的宏。
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。
要求
要求 | 值 |
---|---|
Header | ntddvdeo.h (包括 Ntddvdeo.h) |
另请参阅
IOCTL_VIDEO_SHARE_VIDEO_MEMORY