PAGP_RESERVE_VIRTUAL回调函数 (videoagp.h)
AgpReserveVirtual 函数为 AGP 保留一系列虚拟地址。
语法
PAGP_RESERVE_VIRTUAL PagpReserveVirtual;
PVOID PagpReserveVirtual(
[in] IN PVOID HwDeviceExtension,
[in] IN HANDLE ProcessHandle,
[in] IN PVOID PhysicalReserveContext,
[out] OUT PVOID *VirtualReserveContext
)
{...}
参数
[in] HwDeviceExtension
指向微型端口驱动程序的设备扩展的指针。
[in] ProcessHandle
保留虚拟地址范围的进程的句柄。 如果 ProcessHandle 为 0,则会在系统空间中分配虚拟地址范围。
[in] PhysicalReserveContext
标识与虚拟内存预留关联的保留物理地址范围的上下文句柄。 此上下文是从 AgpReservePhysical 获取的。
[out] VirtualReserveContext
视频端口驱动程序写入标识保留虚拟内存的上下文句柄的位置。
返回值
如果成功,AgpReserveVirtual 将返回保留虚拟地址范围的基址;否则,返回 NULL。
注解
如果 ProcessHandle 不为 0,则 AgpReserveVirtual 在用户模式进程的地址空间中保留但不提交一系列虚拟地址。 在这种情况下,必须调用 AgpCommitVirtual ,将保留 (用户模式) 虚拟地址映射到物理地址。
如果 ProcessHandle 为 0,则 AgpReserveVirtual 会在系统空间中分配一系列虚拟地址,并自动将 (提交) 整个虚拟地址范围映射到物理地址。 即使 AgpReserveVirtual 提交整个虚拟范围,你仍必须在任何代码访问虚拟范围之前调用 AgpCommitVirtual 。
调用 AgpReserveVirtual 以在系统空间 (分配一系列虚拟地址时,如果将 ProcessHandle 设置为 0) ,则上一次调用 AgpCommitPhysical 时,PhysicalReserveContext 标识的整个物理地址范围必须提交到锁定的物理内存页。
微型端口驱动程序可以多次调用 AgpReleaseVirtual ,以保留许多较小的地址范围,而不是一个大范围。
微型端口驱动程序应调用 AgpReleaseVirtual ,以在不再需要时释放保留的虚拟地址范围。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 Windows 2000 及更高版本的 Windows 操作系统中可用。 |
目标平台 | 桌面 |
标头 | videoagp.h (包括 Video.h) |
IRQL | PASSIVE_LEVEL |