Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

pool.h File Reference

Go to the source code of this file.

Classes

struct  _POOL_DESCRIPTOR
struct  _POOL_HEADER
struct  _POOL_BLOCK
struct  _POOL_TRACKER_TABLE
struct  _POOL_TRACKER_BIG_PAGES

Defines

#define NO_POOL_CHECKS   1
#define POOL_CACHE_SUPPORTED   0
#define POOL_CACHE_ALIGN   0
#define NUMBER_OF_POOLS   3
#define NUMBER_OF_PAGED_POOLS   4
#define BASE_POOL_TYPE_MASK   1
#define MUST_SUCCEED_POOL_TYPE_MASK   2
#define CACHE_ALIGNED_POOL_TYPE_MASK   4
#define SESSION_POOL_MASK   32
#define POOL_VERIFIER_MASK   64
#define POOL_DRIVER_MASK   128
#define POOL_QUOTA_MASK   8
#define POOL_TYPE_MASK   (3)
#define POOL_PAGE_SIZE   PAGE_SIZE
#define POOL_BLOCK_SHIFT   5
#define POOL_LIST_HEADS   (POOL_PAGE_SIZE / (1 << POOL_BLOCK_SHIFT))
#define PAGE_ALIGNED(p)   (!(((ULONG_PTR)p) & (POOL_PAGE_SIZE - 1)))
#define PAGE_END(Address)   (((ULONG_PTR)(Address) & (PAGE_SIZE - 1)) == 0)
#define POOL_OVERHEAD   ((LONG)sizeof(POOL_HEADER))
#define POOL_FREE_BLOCK_OVERHEAD   (POOL_OVERHEAD + sizeof (LIST_ENTRY))
#define POOL_SMALLEST_BLOCK   (sizeof(POOL_BLOCK))
#define POOL_BACKTRACEINDEX_PRESENT   0x8000
#define POOL_BUDDY_MAX   (POOL_PAGE_SIZE - (POOL_OVERHEAD + POOL_SMALLEST_BLOCK ))
#define EX_REAL_POOL_USAGE(SizeInBytes)

Typedefs

typedef _POOL_DESCRIPTOR POOL_DESCRIPTOR
typedef _POOL_DESCRIPTORPPOOL_DESCRIPTOR
typedef _POOL_HEADER POOL_HEADER
typedef _POOL_HEADERPPOOL_HEADER
typedef _POOL_BLOCK POOL_BLOCK
typedef _POOL_BLOCKPPOOL_BLOCK
typedef _POOL_TRACKER_TABLE POOL_TRACKER_TABLE
typedef _POOL_TRACKER_TABLEPPOOL_TRACKER_TABLE
typedef _POOL_TRACKER_BIG_PAGES POOL_TRACKER_BIG_PAGES
typedef _POOL_TRACKER_BIG_PAGESPPOOL_TRACKER_BIG_PAGES

Functions

VOID ExpInitializePoolDescriptor (IN PPOOL_DESCRIPTOR PoolDescriptor, IN POOL_TYPE PoolType, IN ULONG PoolIndex, IN ULONG Threshold, IN PVOID PoolLock)

Variables

PPOOL_TRACKER_TABLE PoolTrackTable


Define Documentation

#define BASE_POOL_TYPE_MASK   1
 

Definition at line 50 of file pool.h.

Referenced by ExAllocatePoolSanityChecks(), ExAllocatePoolWithQuotaTag(), ExAllocatePoolWithTag(), ExAllocatePoolWithTagPriority(), ExFreePoolSanityChecks(), ExFreePoolWithTag(), ExLockPool(), ExpInsertPoolTracker(), ExpRemovePoolTracker(), ExReturnPoolQuota(), ExUnlockPool(), MiAllocatePoolPages(), MiAllocateSpecialPool(), MiSessionPoolAllocated(), MiSessionPoolFreed(), MmResourcesAvailable(), VeAllocatePoolWithTagPriority(), and ViPostPoolAllocation().

#define CACHE_ALIGNED_POOL_TYPE_MASK   4
 

Definition at line 54 of file pool.h.

Referenced by ExAllocatePoolWithTag().

#define EX_REAL_POOL_USAGE SizeInBytes   ) 
 

Value:

(((SizeInBytes) > POOL_BUDDY_MAX) ? \ (ROUND_TO_PAGES(SizeInBytes)) : \ (((SizeInBytes) + POOL_OVERHEAD + (POOL_SMALLEST_BLOCK - 1)) & ~(POOL_SMALLEST_BLOCK - 1)))

Definition at line 263 of file pool.h.

Referenced by MiCreateDataFileMap(), MiCreateImageFileMap(), MiCreatePagingFileMap(), MmCreateSection(), MmExtendSection(), and ViPostPoolAllocation().

#define MUST_SUCCEED_POOL_TYPE_MASK   2
 

Definition at line 52 of file pool.h.

Referenced by ExAllocatePoolSanityChecks(), ExAllocatePoolWithTag(), ExAllocatePoolWithTagPriority(), InitializePool(), MiAllocatePoolPages(), MmResourcesAvailable(), and VeAllocatePoolWithTagPriority().

#define NO_POOL_CHECKS   1
 

Definition at line 36 of file pool.h.

#define NUMBER_OF_PAGED_POOLS   4
 

Definition at line 47 of file pool.h.

#define NUMBER_OF_POOLS   3
 

Definition at line 42 of file pool.h.

#define PAGE_ALIGNED  )     (!(((ULONG_PTR)p) & (POOL_PAGE_SIZE - 1)))
 

Definition at line 101 of file pool.h.

#define PAGE_END Address   )     (((ULONG_PTR)(Address) & (PAGE_SIZE - 1)) == 0)
 

Definition at line 110 of file pool.h.

Referenced by ExAllocatePoolWithTag(), and ExFreePoolWithTag().

#define POOL_BACKTRACEINDEX_PRESENT   0x8000
 

Definition at line 220 of file pool.h.

#define POOL_BLOCK_SHIFT   5
 

Definition at line 96 of file pool.h.

Referenced by ExAllocatePoolWithQuotaTag(), ExAllocatePoolWithTag(), ExFreePoolSanityChecks(), ExFreePoolWithTag(), ExQueryPoolBlockSize(), and ExReturnPoolQuota().

#define POOL_BUDDY_MAX   (POOL_PAGE_SIZE - (POOL_OVERHEAD + POOL_SMALLEST_BLOCK ))
 

Definition at line 225 of file pool.h.

#define POOL_CACHE_ALIGN   0
 

Definition at line 40 of file pool.h.

#define POOL_CACHE_SUPPORTED   0
 

Definition at line 39 of file pool.h.

#define POOL_DRIVER_MASK   128
 

Definition at line 60 of file pool.h.

Referenced by ExAllocatePoolWithTag(), VerifierAllocatePool(), VerifierAllocatePoolWithQuota(), VerifierAllocatePoolWithQuotaTag(), VerifierAllocatePoolWithTag(), VerifierAllocatePoolWithTagPriority(), and ViReservePoolAllocation().

#define POOL_FREE_BLOCK_OVERHEAD   (POOL_OVERHEAD + sizeof (LIST_ENTRY))
 

Definition at line 200 of file pool.h.

#define POOL_LIST_HEADS   (POOL_PAGE_SIZE / (1 << POOL_BLOCK_SHIFT))
 

Definition at line 99 of file pool.h.

#define POOL_OVERHEAD   ((LONG)sizeof(POOL_HEADER))
 

Definition at line 194 of file pool.h.

#define POOL_PAGE_SIZE   PAGE_SIZE
 

Definition at line 85 of file pool.h.

#define POOL_QUOTA_MASK   8
 

Definition at line 73 of file pool.h.

Referenced by ExAllocatePoolWithQuotaTag(), ExAllocatePoolWithTag(), ExFreePoolWithTag(), ExReturnPoolQuota(), and MiAllocateSpecialPool().

#define POOL_SMALLEST_BLOCK   (sizeof(POOL_BLOCK))
 

Definition at line 214 of file pool.h.

Referenced by ExAllocatePoolWithTag(), and InitializePool().

#define POOL_TYPE_MASK   (3)
 

Definition at line 75 of file pool.h.

Referenced by ExFreePoolSanityChecks(), ExFreePoolWithTag(), and ExReturnPoolQuota().

#define POOL_VERIFIER_MASK   64
 

Definition at line 58 of file pool.h.

Referenced by ExAllocatePoolWithTag(), ExAllocatePoolWithTagPriority(), ExFreePoolWithTag(), MiAllocatePoolPages(), MiAllocateSpecialPool(), VeAllocatePoolWithTagPriority(), and ViPostPoolAllocation().

#define SESSION_POOL_MASK   32
 

Definition at line 56 of file pool.h.

Referenced by ExAllocatePoolWithTag(), ExAllocatePoolWithTagPriority(), ExFreePoolWithTag(), ExInsertPoolTag(), ExpInsertPoolTracker(), InitQEntryLookaside(), MiAllocatePoolPages(), MmResourcesAvailable(), and VeAllocatePoolWithTagPriority().


Typedef Documentation

typedef struct _POOL_BLOCK POOL_BLOCK
 

typedef struct _POOL_DESCRIPTOR POOL_DESCRIPTOR
 

typedef struct _POOL_HEADER POOL_HEADER
 

typedef struct _POOL_TRACKER_BIG_PAGES POOL_TRACKER_BIG_PAGES
 

Referenced by InitializePool().

typedef struct _POOL_TRACKER_TABLE POOL_TRACKER_TABLE
 

Referenced by InitializePool().

typedef struct _POOL_BLOCK * PPOOL_BLOCK
 

Referenced by ExAllocatePoolWithTag().

typedef struct _POOL_DESCRIPTOR * PPOOL_DESCRIPTOR
 

typedef struct _POOL_HEADER * PPOOL_HEADER
 

typedef struct _POOL_TRACKER_BIG_PAGES * PPOOL_TRACKER_BIG_PAGES
 

typedef struct _POOL_TRACKER_TABLE * PPOOL_TRACKER_TABLE
 


Function Documentation

VOID ExpInitializePoolDescriptor IN PPOOL_DESCRIPTOR  PoolDescriptor,
IN POOL_TYPE  PoolType,
IN ULONG  PoolIndex,
IN ULONG  Threshold,
IN PVOID  PoolLock
 

Referenced by InitializePool(), and MiInitializeSessionPool().


Variable Documentation

PPOOL_TRACKER_TABLE PoolTrackTable
 

Definition at line 283 of file pool.h.


Generated on Sat May 15 19:45:17 2004 for test by doxygen 1.3.7