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,以便 Direct Draw 等应用程序能够查看视频内存。 尽管显示驱动程序无法直接提供对视频内存的此类访问,但它可以为此调用视频微型端口驱动程序。 显示驱动程序通过向微型端口驱动程序发送 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