VideoPortMapBankedMemory 函数 (video.h)

VideoPortMapBankedMemory 函数 过时,并且仅支持 Windows NT 4.0 和以前的驱动程序。 Windows 2000 及更高版本的驱动程序必须使用 VideoPortMapMemory

VideoPortMapBankedMemory 将总线相对物理范围的视频内存重新映射到相应的显示驱动程序的虚拟地址空间,以响应 IoControlCode 成员设置为 IOCTL_VIDEO_SHARE_VIDEO_MEMORYIOCTL_VIDEO_MAP_VIDEO_MEMORY的 VRP。

语法

VIDEOPORT_DEPRECATED VIDEOPORT_API VP_STATUS VideoPortMapBankedMemory(
  PVOID                   HwDeviceExtension,
  PHYSICAL_ADDRESS        PhysicalAddress,
  PULONG                  Length,
  PULONG                  InIoSpace,
  PVOID                   *VirtualAddress,
  ULONG                   BankLength,
  UCHAR                   ReadWriteBank,
  PBANKED_SECTION_ROUTINE BankRoutine,
  PVOID                   Context
);

参数

HwDeviceExtension

指向微型端口驱动程序的设备扩展的指针。

PhysicalAddress

指定要映射的范围的总线相对基址。

Length

指向一个变量的指针,该变量指定要映射的设备内存的总字节数(无论银行大小如何)。 VideoPortMapBankedMemory 返回映射内存的实际大小,该内存可以舍入到系统确定的对齐边界。此参数中。 但是,微型端口和显示驱动程序无法访问以 长度的输入值分隔的范围之外的内存。

InIoSpace

指示范围的位置。 此参数可以是以下值之一:

价值 意义
VIDEO_MEMORY_SPACE_DENSE 过时
VIDEO_MEMORY_SPACE_IO 范围位于系统 I/O 空间中,而不是内存空间中。
VIDEO_MEMORY_SPACE_MEMORY 该范围位于内存空间而不是系统 I/O 空间中。
VIDEO_MEMORY_SPACE_P6CACHE 处理器聚合一系列写入作,并将其发送到给定的缓存行。 然后,处理器刷新缓存。 仅当未设置VIDEO_MEMORY_SPACE_IO时,此标志才有意义。
VIDEO_MEMORY_SPACE_USER_MODE 指示指定的地址范围应映射到用户模式而不是内核模式。 仅当未设置VIDEO_MEMORY_SPACE_IO时,此标志才有意义。

VirtualAddress

内存必须映射到的进程句柄,或 NULLNULL 指定端口驱动程序应在当前进程的地址空间中的任何位置映射逻辑内存范围。 否则,此句柄可以是微型端口驱动程序对应的显示驱动程序传入 VRP 中的值。 成功调用后,VideoPortMapBankedMemory 将变量重置为其映射给定 PhysicalAddress的基虚拟地址。

BankLength

指定银行的大小(以字节为单位)。

ReadWriteBank

如果设置为 TRUE 则银行为 Read\Write;如果设置为 FALSE 则有两个独立的读取和写入银行。

BankRoutine

指向驱动程序提供的 HwVidBankedMemoryCallback 函数的指针,当显示驱动程序访问新银行时,内存管理器将调用该函数。

Context

指向一个微型端口驱动程序提供的上下文的指针,该上下文在调用 BankRoutine 时传回驱动程序。

返回值

如果给定逻辑范围已成功映射到用户空间虚拟范围,VideoPortMapBankedMemory 将返回NO_ERROR。 否则,它可以返回ERROR_INVALID_PARAMETER。

言论

VideoPortMapBankedMemory 在启动调用的用户模式线程所在的同一上下文中运行。

VideoPortMapBankedMemory 由微型端口驱动程序调用,以有效管理仅限于在银行中映射帧缓冲区的 x86 类型设备。 当此例程返回到调用方时,微型端口驱动程序管理的帧缓冲区将映射为线性帧缓冲区,并将其映射到请求进程的地址空间(请参阅 VirtualAddress 参数)。 当访问该映射空间中的地址时,内存管理器调用微型端口驱动程序以更新银行索引寄存器,以指向包含当前引用地址的新银行。 银行指数寄存器由 BankRoutine中的微型端口驱动程序维护。 正确的银行索引由内存管理器以透明方式计算为显示驱动程序,并在回调中传递给 BankRoutine 的微型端口驱动程序

要求

要求 价值
最低支持的客户端 在 Windows 2000 及更高版本的 Windows作系统中可用。
目标平台 桌面
标头 video.h (include Video.h)
Videoprt.lib
DLL Videoprt.sys
IRQL PASSIVE_LEVEL

另请参阅

HwVidBankedMemoryCallback

IOCTL_VIDEO_MAP_VIDEO_MEMORY

IOCTL_VIDEO_SHARE_VIDEO_MEMORY

IOCTL_VIDEO_UNSHARE_VIDEO_MEMORY

VIDEO_REQUEST_PACKET

VideoPortMapMemory

VideoPortUnmapMemory