85 lines
1.4 KiB
C
85 lines
1.4 KiB
C
|
/*++
|
||
|
|
||
|
Copyright (c) 2002-2002 Microsoft Corporation
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
scavenger.h
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
The cache scavenger private declarations
|
||
|
|
||
|
Author:
|
||
|
|
||
|
Karthik Mahesh (KarthikM) Feb-2002
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
--*/
|
||
|
|
||
|
|
||
|
#ifndef _SCAVENGERP_H_
|
||
|
#define _SCAVENGERP_H_
|
||
|
|
||
|
#define SCAVENGER_MAX_AGE 10
|
||
|
|
||
|
//
|
||
|
// Scavenger Thread Event Types. These are Indices in global array
|
||
|
// of PKEVENTs g_ScavengerAllEvents
|
||
|
//
|
||
|
enum {
|
||
|
SCAVENGER_TERMINATE_THREAD_EVENT = 0, // Set on Shutdown
|
||
|
|
||
|
SCAVENGER_TIMER_EVENT, // Set periodically by timer DPC
|
||
|
|
||
|
SCAVENGER_LOW_MEM_EVENT, // Set by system on low memory condition
|
||
|
|
||
|
SCAVENGER_LIMIT_EXCEEDED_EVENT, // Set by UlSetScavengerLimitEvent if cache size limit is exceeded
|
||
|
|
||
|
SCAVENGER_NUM_EVENTS
|
||
|
};
|
||
|
|
||
|
#define LOW_MEM_EVENT_NAME L"\\KernelObjects\\LowMemoryCondition"
|
||
|
|
||
|
//
|
||
|
// Min interval (seconds) between successive
|
||
|
// scavenger calls
|
||
|
//
|
||
|
#define DEFAULT_MIN_SCAVENGER_INTERVAL (4)
|
||
|
|
||
|
VOID
|
||
|
UlpSetScavengerTimer(
|
||
|
VOID
|
||
|
);
|
||
|
|
||
|
VOID
|
||
|
UlpScavengerTimerDpcRoutine(
|
||
|
IN PKDPC Dpc,
|
||
|
IN PVOID DeferredContext,
|
||
|
IN PVOID SystemArgument1,
|
||
|
IN PVOID SystemArgument2
|
||
|
);
|
||
|
|
||
|
VOID
|
||
|
UlpScavengerThread(
|
||
|
IN PVOID Context
|
||
|
);
|
||
|
|
||
|
VOID
|
||
|
UlpScavengerPeriodicEventHandler(
|
||
|
VOID
|
||
|
);
|
||
|
|
||
|
VOID
|
||
|
UlpScavengerLowMemoryEventHandler(
|
||
|
VOID
|
||
|
);
|
||
|
|
||
|
VOID
|
||
|
UlpScavengerLimitEventHandler(
|
||
|
VOID
|
||
|
);
|
||
|
|
||
|
#endif // _SCAVENGERP_H_
|