typedef struct _MM_SESSION_SPACE { volatile long ReferenceCount; union { unsigned long LongFlags; MM_SESSION_SPACE_FLAGS Flags; } u; unsigned long SessionId; volatile long ProcessReferenceToSession; LIST_ENTRY ProcessList; LARGE_INTEGER LastProcessSwappedOutTime; unsigned __int64 SessionPageDirectoryIndex; volatile unsigned __int64 NonPagablePages; volatile unsigned __int64 CommittedPages; void *PagedPoolStart; void *PagedPoolEnd; void *SessionObject; void *SessionObjectHandle; volatile long ResidentProcessCount; unsigned long SessionPoolAllocationFailures[4]; LIST_ENTRY ImageList; unsigned long LocaleId; unsigned long AttachCount; KGATE AttachGate; LIST_ENTRY WsListEntry; GENERAL_LOOKASIDE Lookaside[21]; MMSESSION Session; MM_PAGED_POOL_INFO PagedPoolInfo; MMSUPPORT Vm; MMWSLE *Wsle; void (*DriverUnload)(DRIVER_OBJECT *); POOL_DESCRIPTOR PagedPool; MMPTE PageDirectory; KGUARDED_MUTEX SessionVaLock; RTL_BITMAP DynamicVaBitMap; unsigned long DynamicVaHint; MI_SPECIAL_POOL SpecialPool; KGUARDED_MUTEX SessionPteLock; long PoolBigEntriesInUse; unsigned long PagedPoolPdeCount; unsigned long SpecialPoolPdeCount; unsigned long DynamicSessionPdeCount; MI_SYSTEM_PTE_TYPE SystemPteInfo; void *PoolTrackTableExpansion; unsigned __int64 PoolTrackTableExpansionSize; void *PoolTrackBigPages; unsigned __int64 PoolTrackBigPagesSize; IO_SESSION_STATE IoState; unsigned long IoStateSequence; KEVENT IoNotificationEvent; PS_CPU_QUOTA_BLOCK *CpuQuotaBlock; } MM_SESSION_SPACE, *PMM_SESSION_SPACE;