표준 이벤트 개체

시스템은 여러 표준 이벤트 개체를 제공합니다. 드라이버는 이러한 이벤트 개체를 사용하여 특정 조건이 발생할 때마다 시스템에서 알림을 받을 수 있습니다. 다음 목록에는 표준 이벤트 개체가 포함되어 있습니다.

\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 루틴을 사용합니다. 이러한 이벤트를 기다리는 드라이버는 대기를 수행하는 전용 스레드를 만들어야 합니다. 스레드는 KeWaitForSingleObject 또는KeWaitForMultipleObjects를 호출하여 이러한 이벤트 중 하나 이상을 기다릴 수 있습니다.