VideoPortMapBankedMemory 函数 (video.h)
VideoPortMapBankedMemory 函数已过时,仅支持 Windows NT 4.0 和以前的驱动程序。 Windows 2000 及更高版本的驱动程序必须使用 VideoPortMapMemory。
VideoPortMapBankedMemory 将相对于总线的物理范围的视频内存重新映射到相应的显示驱动程序的虚拟地址空间,以响应 IoControlCode 成员设置为 IOCTL_VIDEO_SHARE_VIDEO_MEMORY 或 IOCTL_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 在此参数中返回映射的内存的实际大小,该内存可以舍入到系统确定的对齐边界。 但是,微型端口和显示驱动程序无法访问由输入值在 Length 中分隔的范围之外的内存。
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
内存必须映射到的进程句柄,或 NULL。 NULL 指定端口驱动程序应在当前进程的地址空间中的任何位置映射逻辑内存范围。 否则,此句柄可以是微型端口驱动程序的相应显示驱动程序在 VRP 中传递的值。 从成功调用返回后, VideoPortMapBankedMemory 会将变量重置为将给定 PhysicalAddress 映射到的基虚拟地址。
BankLength
指定库的大小(以字节为单位)。
ReadWriteBank
如果设置为 TRUE ,则 bank 为 Read\Write;如果设置为 FALSE ,则有两个独立的读取和写入库。
BankRoutine
指向驱动程序提供的 HwVidBankedMemoryCallback 函数的指针,当显示驱动程序访问新库时内存管理器将调用该函数。
Context
指向微型端口驱动程序提供的上下文的指针,该上下文在调用 BankRoutine 时传递回驱动程序。
返回值
如果给定的逻辑范围已成功映射到用户空间虚拟范围,VideoPortMapBankedMemory 将返回NO_ERROR。 否则,它可以返回ERROR_INVALID_PARAMETER。
注解
VideoPortMapBankedMemory 在与发起调用的用户模式线程相同的上下文中运行。
VideoPortMapBankedMemory 由微型端口驱动程序调用,以有效地管理 x86 类型设备,这些设备仅限于映射银行中的帧缓冲区。 当此例程返回到调用方时,微型端口驱动程序管理的帧缓冲区将作为线性帧缓冲区映射到请求进程的地址空间 (请参阅 VirtualAddress 参数) 。 当访问该映射空间中的地址时,内存管理器调用微型端口驱动程序以更新 Bank Index Register 以指向包含当前引用地址的新银行。 Bank Index Register 由 BankRoutine 中的微型端口驱动程序维护。 正确的库索引由内存管理器以透明方式计算到显示驱动程序,并在回调到 BankRoutine 中传递给微型端口驱动程序。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 适用于 Windows 2000 及更高版本的 Windows 操作系统。 |
目标平台 | 桌面 |
标头 | video.h (包括 Video.h) |
Library | Videoprt.lib |
DLL | Videoprt.sys |
IRQL | PASSIVE_LEVEL |
另请参阅
IOCTL_VIDEO_SHARE_VIDEO_MEMORY