IOCTL_VIDEO_SHARE_VIDEO_MEMORY IOCTL (ntddvdeo.h)
此 IOCTL 由将用户模式视频内存共享为线性 帧缓冲区的进程调用。 微型端口驱动程序通过使用 VideoPortMapBankedMemory 将帧缓冲区映射到调用方地址空间来处理此 IOCTL。 否则,此 IOCTL 与 IOCTL_VIDEO_MAP_VIDEO_MEMORY 相同。
此请求既是模式请求,也是非模式的:微型端口驱动程序必须在视频内存中返回帧缓冲区的位置大小,帧缓冲区大小和位置可能因模式而异, (模式特征) ,但 (到相同模式的后续设置模式操作) 不得导致视频内存更改位置 (非模式特征) 。
此 IOCTL 仅为 DCI。
主要代码
输入缓冲区
VRP InputBuffer 包含 一个VIDEO_SHARE_MEMORY 结构,该结构指定映射帧缓冲区的进程句柄,以及请求的视图大小和共享内存中的偏移量。 视图大小加上偏移量不得超过适配器的内存大小。
输出缓冲区
微型端口驱动程序返回 VRP OutputBuffer 中的VIDEO_SHARE_MEMORY_INFORMATION结构。 此输出包含映射视频内存的虚拟地址、映射内存的视图大小(以字节为单位)以及视图中的偏移量。
状态块
如果微型端口驱动程序成功映射内存,则会将 STATUS_BLOCK 结构的 Information 成员设置为 size of (VIDEO_SHARE_MEMORY_INFORMATION) ;否则,微型端口驱动程序将此成员设置为零。
要求
要求 | 值 |
---|---|
Header | ntddvdeo.h |