Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/**********************************************************************/ /** Microsoft Windows NT **/ /** Copyright(c) Microsoft Corp., 1998 **/ /**********************************************************************/
/*
tlcach.h
This module declares the private interface to the two level cache
FILE HISTORY: BAlam 10-31-98 Initial Revision */
#ifndef _TLCACH_H_
#define _TLCACH_H_
//
// Default interval between adjusting the memory cache max size
//
#define DEFAULT_ADJUSTMENT_TIME 60000
DWORD InitializeTwoLevelCache( IN DWORDLONG cbMemoryCacheSize );
DWORD ReadFileIntoMemoryCache( IN HANDLE hFile, IN DWORD cbFile, OUT DWORD * pcbRequired, OUT VOID ** ppvBuffer );
DWORD ReleaseFromMemoryCache( IN VOID * pvBuffer, IN DWORD cbBuffer );
DWORD TerminateTwoLevelCache( VOID );
DWORD DumpMemoryCacheToHtml( IN CHAR * pszBuffer, IN OUT DWORD * pcbBuffer );
VOID QueryMemoryCacheStatistics( IN INETA_CACHE_STATISTICS * pCacheCtrs, IN BOOL fClearAll );
#if defined(LOOKASIDE)
class CLookAside { public: CLookAside( ALLOC_CACHE_CONFIGURATION* paacc, SIZE_T caacc); ~CLookAside();
LPVOID Alloc( IN DWORD cbSize);
BOOL Free( IN LPVOID pv, IN DWORD cbSize);
protected: enum { HEAP_PREFIX = 8, HEAP_SUFFIX = 0, ACACHE_OVERHEAD = sizeof(DWORD), SIGNATURE = 'ALsT', SIGNATURE_X = 'XLsT', };
int _FindAllocator( IN DWORD cbSize);
DWORD m_dwSignature; ALLOC_CACHE_HANDLER** m_apach; // array of acaches
ALLOC_CACHE_CONFIGURATION* m_aacc; // parallel array of config data
SIZE_T m_cach; // number of acaches
SIZE_T m_nMinSize; SIZE_T m_nMaxSize; };
#endif // LOOKASIDE
#endif
|