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) ,则 PhysicalReserveContext 标识的整个物理地址范围必须通过先前调用 AgpCommit Physicalal 提交到物理内存的锁定页。

微型端口驱动程序可以多次调用 AgpReleaseVirtual ,以保留许多较小的地址范围,而不是一个大范围。

微型端口驱动程序应调用 AgpReleaseVirtual ,以在不再需要保留的虚拟地址范围时释放该范围。

要求

   
最低受支持的客户端 在 Windows 2000 及更高版本的 Windows 操作系统中可用。
目标平台 桌面型
标头 videoagp.h (包括 Video.h)
IRQL PASSIVE_LEVEL

请参阅

AgpCommitPhysical

AgpCommitVirtual

AgpReleaseVirtual

AgpReservePhysical