IOCTL_VIDEO_SHARE_VIDEO_MEMORY IOCTL (ntddvdeo.h)

此 IOCTL 由将用户模式视频内存共享为线性 帧缓冲区的进程调用。 微型端口驱动程序通过使用 VideoPortMapBankedMemory 将帧缓冲区映射到调用方地址空间来处理此 IOCTL。 否则,此 IOCTL 与 IOCTL_VIDEO_MAP_VIDEO_MEMORY 相同。

此请求既是模式请求,也是非模式的:微型端口驱动程序必须在视频内存中返回帧缓冲区的位置大小,帧缓冲区大小和位置可能因模式而异, (模式特征) ,但 (到相同模式的后续设置模式操作) 不得导致视频内存更改位置 (非模式特征) 。

此 IOCTL 仅为 DCI。

主要代码

IRP_MJ_DEVICE_CONTROL

输入缓冲区

VRP InputBuffer 包含 一个VIDEO_SHARE_MEMORY 结构,该结构指定映射帧缓冲区的进程句柄,以及请求的视图大小和共享内存中的偏移量。 视图大小加上偏移量不得超过适配器的内存大小。

输出缓冲区

微型端口驱动程序返回 VRP OutputBuffer 中的VIDEO_SHARE_MEMORY_INFORMATION结构。 此输出包含映射视频内存的虚拟地址、映射内存的视图大小(以字节为单位)以及视图中的偏移量。

状态块

如果微型端口驱动程序成功映射内存,则会将 STATUS_BLOCK 结构的 Information 成员设置为 size of (VIDEO_SHARE_MEMORY_INFORMATION) ;否则,微型端口驱动程序将此成员设置为零。

要求

要求
Header ntddvdeo.h

另请参阅

IOCTL_VIDEO_MAP_VIDEO_MEMORY

STATUS_BLOCK

VIDEO_SHARE_MEMORY

VIDEO_SHARE_MEMORY_INFORMATION

VideoPortMapBankedMemory