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 返回映射内存的实际大小,该内存可以舍入到系统确定的对齐边界。此参数中。 但是,微型端口和显示驱动程序无法访问以 长度的输入值分隔的范围之外的内存。
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 则银行为 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 |
另请参阅
IOCTL_VIDEO_SHARE_VIDEO_MEMORY