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 结构的 信息 成员设置为 大小(VIDEO_SHARE_MEMORY_INFORMATION):否则,微型端口驱动程序将此成员设置为零。
要求
要求 | 价值 |
---|---|
标头 | ntddvdeo.h |