标准事件对象

系统提供多个标准事件对象。 驱动程序可以使用这些事件对象,每当出现某些情况时,系统就会收到通知。 以下列表包含标准事件对象:

\KernelObjects\HighMemoryCondition
每当可用物理内存量超过系统定义的量时,将设置此事件。 驱动程序可以等待将此事件设置为主动分配内存的信号。

\KernelObjects\LowMemoryCondition
每当可用物理内存量低于系统定义的量时,将设置此事件。 已分配大量内存的驱动程序可以等待将此事件设置为释放未使用的内存的信号。

对于 Microsoft Windows Server 2003 及更高版本的 Windows,驱动程序还可以使用以下其他标准事件对象:

\KernelObjects\HighPagedPoolCondition
每当可用分页池的数量超过系统定义的量时,将设置此事件。 驱动程序可以等待将此事件设置为主动从分页池分配内存的信号。

\KernelObjects\LowPagedPoolCondition
每当可用分页池的数量低于系统定义的量时,将设置此事件。 已分配大量内存的驱动程序可以等待将此事件设置为从分页池中释放未使用的内存的信号。

\KernelObjects\HighNonPagedPoolCondition
每当可用非分页池的数量超过系统定义的量时,将设置此事件。 驱动程序可以等待将此事件设置为主动分配非分页池内存的信号。

\KernelObjects\LowNonPagedPoolCondition
每当可用非分页池的数量低于系统定义的量时,将设置此事件。 已分配大量内存的驱动程序可以等待将此事件设置为从非分页池中释放未使用的内存的信号。

对于 Windows Vista 和更高版本的 Windows,驱动程序还可以使用以下其他标准事件对象:

\KernelObjects\LowCommitCondition
当操作系统的 提交费用 相对于 当前提交限制较低时,将设置此事件。 换句话说,内存使用率较低,物理内存或分页文件中有大量可用空间。

\KernelObjects\HighCommitCondition
当操作系统的提交费用相对于当前提交限制较高时,将设置此事件。 换句话说,内存使用率较高,物理内存或分页文件中的可用空间非常少,但操作系统可能能够增加其分页文件的大小。

\KernelObjects\MaximumCommitCondition
当操作系统的提交费用接近 最大提交限制时,将设置此事件。 换句话说,内存使用率非常高,物理内存或分页文件中的可用空间非常少,操作系统无法增加其分页文件的大小。 (如果存在足够的存储资源,系统管理员始终可以增加分页文件的大小或数量,而无需重新启动计算机。)

其中每个事件都是通知事件。 只要触发条件保持为 true,它们就会保持设置。

若要打开其中任何事件的句柄,请使用 IoCreateNotificationEvent 例程。 等待其中任何事件的驱动程序应创建一个专用线程来执行等待。 线程可以通过调用 KeWaitForSingleObjectKeWaitForMultipleObjects 来等待其中一个或多个事件。