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

另请参阅

AgpCommitPhysical

AgpCommitVirtual

AgpReleaseVirtual

AgpReservePhysical