00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
#include "mi.h"
00022 
00023 
00024 
00025 
00026 
00027 PVOID 
MmHighestUserAddress;
00028 
00029 
00030 
00031 
00032 
00033 PVOID 
MmSystemRangeStart;
00034 
00035 
00036 
00037 
00038 
00039 ULONG_PTR 
MmUserProbeAddress;
00040 
00041 
00042 
00043 
00044 
00045 ULONG_PTR 
MmVirtualBias;
00046 
00047 
00048 
00049 
00050 
00051 ULONG 
MmSecondaryColors;
00052 
00053 
00054 
00055 
00056 
00057 ULONG 
MmProcessColorSeed = 0x12345678;
00058 
00059 
00060 
00061 
00062 
00063 PFN_COUNT 
MmNumberOfPhysicalPages;
00064 
00065 
00066 
00067 
00068 
00069 PFN_NUMBER 
MmLowestPhysicalPage = (PFN_NUMBER)-1;
00070 
00071 
00072 
00073 
00074 
00075 PFN_NUMBER 
MmHighestPhysicalPage;
00076 
00077 
00078 
00079 
00080 
00081 PFN_NUMBER 
MmHighestPossiblePhysicalPage;
00082 
00083 
00084 
00085 
00086 
00087 
00088 PFN_COUNT  
MmAvailablePages;
00089 PFN_NUMBER 
MmThrottleTop;
00090 PFN_NUMBER 
MmThrottleBottom;
00091 
00092 
00093 
00094 
00095 
00096 MMINFO_COUNTERS MmInfoCounters;
00097 
00098 
00099 
00100 
00101 
00102 
00103 
00104 
00105 
00106 
00107 
00108 
00109 SPFN_NUMBER 
MmResidentAvailablePages;
00110 
00111 
00112 
00113 
00114 
00115 
00116 PFN_NUMBER 
MmPagesAboveWsMinimum;
00117 
00118 
00119 
00120 
00121 
00122 
00123 PFN_NUMBER 
MmPagesAboveWsMaximum;
00124 
00125 
00126 
00127 
00128 
00129 
00130 
00131 
00132 
00133 
00134 
00135 PFN_NUMBER 
MmPagesAboveWsThreshold = 37;
00136 
00137 PFN_NUMBER 
MmWorkingSetSizeIncrement = 6;
00138 
00139 
00140 
00141 
00142 
00143 PFN_NUMBER 
MmWorkingSetSizeExpansion = 20;
00144 
00145 
00146 
00147 
00148 
00149 
00150 PFN_NUMBER 
MmWsAdjustThreshold = 45;
00151 
00152 
00153 
00154 
00155 
00156 
00157 PFN_NUMBER 
MmWsExpandThreshold = 90;
00158 
00159 
00160 
00161 
00162 
00163 PFN_NUMBER 
MmWsTrimReductionGoal = 29;
00164 
00165 
00166 
00167 
00168 
00169 PFN_NUMBER 
MmHiberPages = 512;
00170 
00171 
00172 
00173 
00174 
00175 ULONG 
MmLargePageMinimum;
00176 
00177 PMMPFN MmPfnDatabase;
00178 
00179 MMPFNLIST MmZeroedPageListHead = {
00180                     0, 
00181                     
ZeroedPageList, 
00182                     
MM_EMPTY_LIST, 
00183                     
MM_EMPTY_LIST  
00184                     };
00185 
00186 MMPFNLIST MmFreePageListHead = {
00187                     0, 
00188                     
FreePageList, 
00189                     
MM_EMPTY_LIST, 
00190                     
MM_EMPTY_LIST  
00191                     };
00192 
00193 MMPFNLIST MmStandbyPageListHead = {
00194                     0, 
00195                     
StandbyPageList, 
00196                     
MM_EMPTY_LIST, 
00197                     
MM_EMPTY_LIST  
00198                     };
00199 
00200 MMPFNLIST MmModifiedPageListHead = {
00201                     0, 
00202                     
ModifiedPageList, 
00203                     
MM_EMPTY_LIST, 
00204                     
MM_EMPTY_LIST  
00205                     };
00206 
00207 MMPFNLIST MmModifiedNoWritePageListHead = {
00208                     0, 
00209                     
ModifiedNoWritePageList, 
00210                     
MM_EMPTY_LIST, 
00211                     
MM_EMPTY_LIST  
00212                     };
00213 
00214 MMPFNLIST MmBadPageListHead = {
00215                     0, 
00216                     
BadPageList, 
00217                     
MM_EMPTY_LIST, 
00218                     
MM_EMPTY_LIST  
00219                     };
00220 
00221 PMMPFNLIST MmPageLocationList[
NUMBER_OF_PAGE_LISTS] = {
00222                                       &
MmZeroedPageListHead,
00223                                       &
MmFreePageListHead,
00224                                       &
MmStandbyPageListHead,
00225                                       &
MmModifiedPageListHead,
00226                                       &
MmModifiedNoWritePageListHead,
00227                                       &
MmBadPageListHead,
00228                                       
NULL,
00229                                       
NULL };
00230 
00231 
00232 
00233 
00234 
00235 
00236 
00237 
00238 
00239 
00240 
00241 
00242 
00243 
00244 
00245 
00246 
00247 PMMPTE MiHighestUserPte;
00248 PMMPTE MiHighestUserPde;
00249 
00250 PMMPTE MiSessionBasePte;
00251 PMMPTE MiSessionLastPte;
00252 
00253 
00254 
00255 
00256 
00257 PMMPTE MmFirstReservedMappingPte;
00258 
00259 PMMPTE MmLastReservedMappingPte;
00260 
00261 
PMMWSL MmWorkingSetList;
00262 
00263 
PMMWSLE MmWsle;
00264 
00265 
00266 
00267 
00268 
00269 KEVENT MmAvailablePagesEvent;
00270 
00271 
00272 
00273 
00274 
00275 KEVENT MmZeroingPageEvent;
00276 
00277 
00278 
00279 
00280 
00281 
00282 
00283 
00284 BOOLEAN 
MmZeroingPageThreadActive;
00285 
00286 
00287 
00288 
00289 
00290 PFN_NUMBER 
MmMinimumFreePagesToZero = 8;
00291 
00292 
00293 
00294 
00295 
00296 
00297 
00298 PVOID 
MmNonPagedSystemStart;
00299 
00300 LOGICAL 
MmProtectFreedNonPagedPool;
00301 
00302 LOGICAL 
MmDynamicPfn = 
FALSE;
00303 
00304 
#if PFN_CONSISTENCY
00305 
PMMPTE MiPfnStartPte;
00306 PFN_NUMBER MiPfnPtes;
00307 BOOLEAN MiPfnProtectionEnabled;
00308 
PETHREAD MiPfnLockOwner;
00309 
#endif
00310 
00311 
#ifdef MM_BUMP_COUNTER_MAX
00312 SIZE_T 
MmResTrack[
MM_BUMP_COUNTER_MAX];
00313 
#endif
00314 
00315 
#ifdef MM_COMMIT_COUNTER_MAX
00316 
SIZE_T MmTrackCommit[MM_COMMIT_COUNTER_MAX];
00317 
#endif
00318 
00319 
00320 
00321 
00322 
00323 LOGICAL  
MmTrackLockedPages;
00324 
00325 
00326 
00327 
00328 
00329 
00330 LOGICAL 
MmSnapUnloads = 
TRUE;
00331 
00332 
#if DBG
00333 
PETHREAD MiExpansionLockOwner;
00334 
#endif
00335 
00336 
00337 
00338 
00339 
00340 SIZE_T 
MmSizeOfNonPagedPoolInBytes;
00341 
00342 SIZE_T 
MmMaximumNonPagedPoolInBytes;
00343 
00344 SIZE_T 
MmMinimumNonPagedPoolSize = 256 * 1024; 
00345 
00346 ULONG 
MmMinAdditionNonPagedPoolPerMb = 32 * 1024; 
00347 
00348 SIZE_T 
MmDefaultMaximumNonPagedPool = 1024 * 1024;  
00349 
00350 ULONG 
MmMaxAdditionNonPagedPoolPerMb = 400 * 1024;  
00351 
00352 SIZE_T 
MmSizeOfPagedPoolInBytes = 32 * 1024 * 1024; 
00353 
00354 PFN_NUMBER 
MmSizeOfNonPagedMustSucceed = 4 * 
PAGE_SIZE; 
00355 
00356 ULONG 
MmNumberOfSystemPtes;
00357 
00358 ULONG 
MiRequestedSystemPtes;
00359 
00360 ULONG 
MmLockPagesPercentage;
00361 
00362 PFN_NUMBER 
MmLockPagesLimit;
00363 
00364 PMMPTE MmFirstPteForPagedPool;
00365 
00366 PMMPTE MmLastPteForPagedPool;
00367 
00368 PMMPTE MmPagedPoolBasePde;
00369 
00370 
00371 
00372 
00373 
00374 PVOID 
MmPageAlignedPoolBase[2];
00375 
00376 PVOID 
MmNonPagedMustSucceed;
00377 
00378 ULONG 
MmExpandedPoolBitPosition;
00379 
00380 PFN_NUMBER 
MmNumberOfFreeNonPagedPool;
00381 
00382 ULONG 
MmMustSucceedPoolBitPosition;
00383 
00384 
00385 
00386 
00387 
00388 
00389 
00390 MMPTE MmFirstFreeSystemPte[
MaximumPtePoolTypes];
00391 
00392 
00393 
00394 
00395 
00396 PMMWSL MmSystemCacheWorkingSetList = (
PMMWSL)
MM_SYSTEM_CACHE_WORKING_SET;
00397 
00398 MMSUPPORT MmSystemCacheWs;
00399 
00400 PMMWSLE MmSystemCacheWsle;
00401 
00402 PVOID 
MmSystemCacheStart = (PVOID)
MM_SYSTEM_CACHE_START;
00403 
00404 PVOID 
MmSystemCacheEnd;
00405 
00406 PRTL_BITMAP 
MmSystemCacheAllocationMap;
00407 
00408 PRTL_BITMAP 
MmSystemCacheEndingMap;
00409 
00410 
00411 
00412 
00413 
00414 
00415 PFN_COUNT 
MmSizeOfSystemCacheInPages = 64 * 256; 
00416 
00417 
00418 
00419 
00420 
00421 PFN_NUMBER 
MmSystemCacheWsMinimum = 288;
00422 
00423 PFN_NUMBER 
MmSystemCacheWsMaximum = 350;
00424 
00425 
00426 
00427 
00428 
00429 
00430 ULONG 
MmNumberDeadKernelStacks;
00431 ULONG 
MmMaximumDeadKernelStacks = 5;
00432 PMMPFN MmFirstDeadKernelStack = (
PMMPFN)
NULL;
00433 
00434 
00435 
00436 
00437 
00438 
00439 
00440 PMMPTE MmSystemPteBase;
00441 
00442 PMMWSL MmWorkingSetList;
00443 
00444 PMMWSLE MmWsle;
00445 
00446 PMMADDRESS_NODE MmSectionBasedRoot;
00447 
00448 PVOID 
MmHighSectionBase;
00449 
00450 
00451 
00452 
00453 
00454 POBJECT_TYPE MmSectionObjectType;
00455 
00456 
00457 
00458 
00459 
00460 FAST_MUTEX MmSectionCommitMutex;
00461 
00462 
00463 
00464 
00465 
00466 FAST_MUTEX MmSectionBasedMutex;
00467 
00468 
00469 
00470 
00471 
00472 ERESOURCE MmSectionExtendResource;
00473 ERESOURCE MmSectionExtendSetResource;
00474 
00475 
00476 
00477 
00478 
00479 FAST_MUTEX MmPageFileCreationLock;
00480 
00481 MMDEREFERENCE_SEGMENT_HEADER MmDereferenceSegmentHeader;
00482 
00483 LIST_ENTRY 
MmUnusedSegmentList;
00484 
00485 KEVENT MmUnusedSegmentCleanup;
00486 
00487 ULONG 
MmUnusedSegmentCount;
00488 
00489 
00490 
00491 
00492 
00493 SIZE_T 
MmMaxUnusedSegmentPagedPoolUsage;
00494 
00495 
00496 
00497 
00498 
00499 SIZE_T 
MmUnusedSegmentPagedPoolUsage;
00500 SIZE_T 
MiUnusedSegmentPagedPoolUsage;
00501 
00502 
00503 
00504 
00505 
00506 SIZE_T 
MmUnusedSegmentPagedPoolReduction;
00507 
00508 
00509 
00510 
00511 
00512 SIZE_T 
MmMaxUnusedSegmentNonPagedPoolUsage;
00513 
00514 
00515 
00516 
00517 
00518 SIZE_T 
MmUnusedSegmentNonPagedPoolUsage;
00519 SIZE_T 
MiUnusedSegmentNonPagedPoolUsage;
00520 
00521 
00522 
00523 
00524 
00525 SIZE_T 
MmUnusedSegmentNonPagedPoolReduction;
00526 
00527 
00528 
00529 
00530 
00531 
00532 
00533 ULONG 
MmUnusedSegmentTrimLevel = 18;
00534 
00535 MMWORKING_SET_EXPANSION_HEAD MmWorkingSetExpansionHead;
00536 
00537 MMPAGE_FILE_EXPANSION MmAttemptForCantExtend;
00538 
00539 
00540 
00541 
00542 
00543 MMMOD_WRITER_LISTHEAD MmPagingFileHeader;
00544 
00545 MMMOD_WRITER_LISTHEAD MmMappedFileHeader;
00546 
00547 PMMMOD_WRITER_MDL_ENTRY MmMappedFileMdl[
MM_MAPPED_FILE_MDLS]; ;
00548 
00549 LIST_ENTRY 
MmFreePagingSpaceLow;
00550 
00551 ULONG 
MmNumberOfActiveMdlEntries;
00552 
00553 PMMPAGING_FILE MmPagingFile[
MAX_PAGE_FILES];
00554 
00555 ULONG 
MmNumberOfPagingFiles;
00556 
00557 KEVENT MmModifiedPageWriterEvent;
00558 
00559 KEVENT MmWorkingSetManagerEvent;
00560 
00561 KEVENT MmCollidedFlushEvent;
00562 
00563 
00564 
00565 
00566 
00567 SIZE_T 
MmTotalCommittedPages;
00568 
00569 
00570 
00571 
00572 
00573 
00574 SIZE_T 
MmTotalCommitLimit;
00575 
00576 SIZE_T 
MmTotalCommitLimitMaximum;
00577 
00578 
00579 
00580 
00581 
00582 
00583 SIZE_T 
MmOverCommit;
00584 
00585 
00586 
00587 
00588 
00589 
00590 
00591 
00592 
00593 
00594 
00595 PFN_NUMBER 
MmMinimumFreePages = 26;
00596 
00597 
00598 
00599 
00600 
00601 PFN_NUMBER 
MmFreeGoal = 100;
00602 
00603 
00604 
00605 
00606 
00607 
00608 PFN_NUMBER 
MmModifiedPageMaximum;
00609 
00610 
00611 
00612 
00613 
00614 
00615 PFN_NUMBER 
MmModifiedPageMinimum;
00616 
00617 
00618 
00619 
00620 
00621 
00622 ULONG 
MmMinimumFreeDiskSpace = 1024 * 1024;
00623 
00624 
00625 
00626 
00627 
00628 ULONG 
MmPageFileExtension = 128; 
00629 
00630 
00631 
00632 
00633 
00634 ULONG 
MmMinimumPageFileReduction = 256;  
00635 
00636 
00637 
00638 
00639 
00640 ULONG 
MmModifiedWriteClusterSize = 
MM_MAXIMUM_WRITE_CLUSTER;
00641 
00642 
00643 
00644 
00645 
00646 ULONG 
MmReadClusterSize = 7;
00647 
00648 
00649 
00650 
00651 
00652 
00653 
00654 
00655 
00656 
00657 
00658 
00659 
00660 
00661 
00662 
00663 
00664 
00665 ERESOURCE MmSystemWsLock;
00666 
00667 PETHREAD MmSystemLockOwner;
00668 
00669 
00670 
00671 
00672 
00673 KSPIN_LOCK 
MmExpansionLock;
00674 
00675 
00676 
00677 
00678 
00679 
00680 
00681 
00682 
00683 PFN_NUMBER 
MmSystemProcessWorkingSetMin = 50;
00684 
00685 PFN_NUMBER 
MmSystemProcessWorkingSetMax = 450;
00686 
00687 PFN_NUMBER 
MmMaximumWorkingSetSize;
00688 
00689 PFN_NUMBER 
MmMinimumWorkingSetSize = 20;
00690 
00691 
00692 
00693 
00694 
00695 
00696 ULONG 
MmSystemPageColor;
00697 
00698 
00699 
00700 
00701 
00702 LARGE_INTEGER 
MmSevenMinutes = {0, -1};
00703 
00704 
00705 
00706 
00707 
00708 
00709 
00710 LARGE_INTEGER 
MmWorkingSetProtectionTime = {5 * 1000 * 1000 * 10, 0};
00711 
00712 LARGE_INTEGER 
MmOneSecond = {(ULONG)(-1 * 1000 * 1000 * 10), -1};
00713 LARGE_INTEGER 
MmTwentySeconds = {(ULONG)(-20 * 1000 * 1000 * 10), -1};
00714 LARGE_INTEGER 
MmShortTime = {(ULONG)(-10 * 1000 * 10), -1}; 
00715 LARGE_INTEGER 
MmHalfSecond = {(ULONG)(-5 * 100 * 1000 * 10), -1};
00716 LARGE_INTEGER 
Mm30Milliseconds = {(ULONG)(-30 * 1000 * 10), -1};
00717 
00718 
00719 
00720 
00721 ULONG 
MmCritsectTimeoutSeconds = 2592000;
00722 LARGE_INTEGER 
MmCriticalSectionTimeout;     
00723 SIZE_T 
MmHeapSegmentReserve = 1024 * 1024;
00724 SIZE_T 
MmHeapSegmentCommit = 
PAGE_SIZE * 2;
00725 SIZE_T 
MmHeapDeCommitTotalFreeThreshold = 64 * 1024;
00726 SIZE_T 
MmHeapDeCommitFreeBlockThreshold = 
PAGE_SIZE;
00727 
00728 
00729 
00730 
00731 
00732 
00733 
00734 ULONG 
MmDisablePagingExecutive;
00735 
00736 BOOLEAN 
Mm64BitPhysicalAddress;
00737 
00738 
#if DBG
00739 
ULONG MmDebug;
00740 
#endif
00741 
00742 
00743 
00744 
00745 
00746 ULONG 
MmProtectToValue[32] = {
00747                             PAGE_NOACCESS,
00748                             PAGE_READONLY,
00749                             PAGE_EXECUTE,
00750                             PAGE_EXECUTE_READ,
00751                             PAGE_READWRITE,
00752                             PAGE_WRITECOPY,
00753                             PAGE_EXECUTE_READWRITE,
00754                             PAGE_EXECUTE_WRITECOPY,
00755                             PAGE_NOACCESS,
00756                             PAGE_NOCACHE | PAGE_READONLY,
00757                             PAGE_NOCACHE | PAGE_EXECUTE,
00758                             PAGE_NOCACHE | PAGE_EXECUTE_READ,
00759                             PAGE_NOCACHE | PAGE_READWRITE,
00760                             PAGE_NOCACHE | PAGE_WRITECOPY,
00761                             PAGE_NOCACHE | PAGE_EXECUTE_READWRITE,
00762                             PAGE_NOCACHE | PAGE_EXECUTE_WRITECOPY,
00763                             PAGE_NOACCESS,
00764                             PAGE_GUARD | PAGE_READONLY,
00765                             PAGE_GUARD | PAGE_EXECUTE,
00766                             PAGE_GUARD | PAGE_EXECUTE_READ,
00767                             PAGE_GUARD | PAGE_READWRITE,
00768                             PAGE_GUARD | PAGE_WRITECOPY,
00769                             PAGE_GUARD | PAGE_EXECUTE_READWRITE,
00770                             PAGE_GUARD | PAGE_EXECUTE_WRITECOPY,
00771                             PAGE_NOACCESS,
00772                             PAGE_NOCACHE | PAGE_GUARD | PAGE_READONLY,
00773                             PAGE_NOCACHE | PAGE_GUARD | PAGE_EXECUTE,
00774                             PAGE_NOCACHE | PAGE_GUARD | PAGE_EXECUTE_READ,
00775                             PAGE_NOCACHE | PAGE_GUARD | PAGE_READWRITE,
00776                             PAGE_NOCACHE | PAGE_GUARD | PAGE_WRITECOPY,
00777                             PAGE_NOCACHE | PAGE_GUARD | PAGE_EXECUTE_READWRITE,
00778                             PAGE_NOCACHE | PAGE_GUARD | PAGE_EXECUTE_WRITECOPY
00779                           };
00780 
00781 ULONG 
MmProtectToPteMask[32] = {
00782                        
MM_PTE_NOACCESS,
00783                        
MM_PTE_READONLY | 
MM_PTE_CACHE,
00784                        
MM_PTE_EXECUTE | 
MM_PTE_CACHE,
00785                        
MM_PTE_EXECUTE_READ | 
MM_PTE_CACHE,
00786                        
MM_PTE_READWRITE | 
MM_PTE_CACHE,
00787                        
MM_PTE_WRITECOPY | 
MM_PTE_CACHE,
00788                        
MM_PTE_EXECUTE_READWRITE | 
MM_PTE_CACHE,
00789                        
MM_PTE_EXECUTE_WRITECOPY | 
MM_PTE_CACHE,
00790                        
MM_PTE_NOACCESS,
00791                        
MM_PTE_NOCACHE | 
MM_PTE_READONLY,
00792                        
MM_PTE_NOCACHE | 
MM_PTE_EXECUTE,
00793                        
MM_PTE_NOCACHE | 
MM_PTE_EXECUTE_READ,
00794                        
MM_PTE_NOCACHE | 
MM_PTE_READWRITE,
00795                        
MM_PTE_NOCACHE | 
MM_PTE_WRITECOPY,
00796                        
MM_PTE_NOCACHE | 
MM_PTE_EXECUTE_READWRITE,
00797                        
MM_PTE_NOCACHE | 
MM_PTE_EXECUTE_WRITECOPY,
00798                        
MM_PTE_NOACCESS,
00799                        
MM_PTE_GUARD | 
MM_PTE_READONLY | 
MM_PTE_CACHE,
00800                        
MM_PTE_GUARD | 
MM_PTE_EXECUTE | 
MM_PTE_CACHE,
00801                        
MM_PTE_GUARD | 
MM_PTE_EXECUTE_READ | 
MM_PTE_CACHE,
00802                        
MM_PTE_GUARD | 
MM_PTE_READWRITE | 
MM_PTE_CACHE,
00803                        
MM_PTE_GUARD | 
MM_PTE_WRITECOPY | 
MM_PTE_CACHE,
00804                        
MM_PTE_GUARD | 
MM_PTE_EXECUTE_READWRITE | 
MM_PTE_CACHE,
00805                        
MM_PTE_GUARD | 
MM_PTE_EXECUTE_WRITECOPY | 
MM_PTE_CACHE,
00806                        
MM_PTE_NOACCESS,
00807                        
MM_PTE_NOCACHE | 
MM_PTE_GUARD | 
MM_PTE_READONLY,
00808                        
MM_PTE_NOCACHE | 
MM_PTE_GUARD | 
MM_PTE_EXECUTE,
00809                        
MM_PTE_NOCACHE | 
MM_PTE_GUARD | 
MM_PTE_EXECUTE_READ,
00810                        
MM_PTE_NOCACHE | 
MM_PTE_GUARD | 
MM_PTE_READWRITE,
00811                        
MM_PTE_NOCACHE | 
MM_PTE_GUARD | 
MM_PTE_WRITECOPY,
00812                        
MM_PTE_NOCACHE | 
MM_PTE_GUARD | 
MM_PTE_EXECUTE_READWRITE,
00813                        
MM_PTE_NOCACHE | 
MM_PTE_GUARD | 
MM_PTE_EXECUTE_WRITECOPY
00814                     };
00815 
00816 
00817 
00818 
00819 
00820 
00821 ULONG 
MmMakeProtectNotWriteCopy[32] = {
00822                        
MM_NOACCESS,
00823                        
MM_READONLY,
00824                        
MM_EXECUTE,
00825                        
MM_EXECUTE_READ,
00826                        
MM_READWRITE,
00827                        
MM_READWRITE,        
00828                        
MM_EXECUTE_READWRITE,
00829                        
MM_EXECUTE_READWRITE,
00830                        
MM_NOACCESS,
00831                        
MM_NOCACHE | 
MM_READONLY,
00832                        
MM_NOCACHE | 
MM_EXECUTE,
00833                        
MM_NOCACHE | 
MM_EXECUTE_READ,
00834                        
MM_NOCACHE | 
MM_READWRITE,
00835                        
MM_NOCACHE | 
MM_READWRITE,
00836                        
MM_NOCACHE | 
MM_EXECUTE_READWRITE,
00837                        
MM_NOCACHE | 
MM_EXECUTE_READWRITE,
00838                        
MM_NOACCESS,
00839                        
MM_GUARD_PAGE | 
MM_READONLY,
00840                        
MM_GUARD_PAGE | 
MM_EXECUTE,
00841                        
MM_GUARD_PAGE | 
MM_EXECUTE_READ,
00842                        
MM_GUARD_PAGE | 
MM_READWRITE,
00843                        
MM_GUARD_PAGE | 
MM_READWRITE,
00844                        
MM_GUARD_PAGE | 
MM_EXECUTE_READWRITE,
00845                        
MM_GUARD_PAGE | 
MM_EXECUTE_READWRITE,
00846                        
MM_NOACCESS,
00847                        
MM_NOCACHE | 
MM_GUARD_PAGE | 
MM_READONLY,
00848                        
MM_NOCACHE | 
MM_GUARD_PAGE | 
MM_EXECUTE,
00849                        
MM_NOCACHE | 
MM_GUARD_PAGE | 
MM_EXECUTE_READ,
00850                        
MM_NOCACHE | 
MM_GUARD_PAGE | 
MM_READWRITE,
00851                        
MM_NOCACHE | 
MM_GUARD_PAGE | 
MM_READWRITE,
00852                        
MM_NOCACHE | 
MM_GUARD_PAGE | 
MM_EXECUTE_READWRITE,
00853                        
MM_NOCACHE | 
MM_GUARD_PAGE | 
MM_EXECUTE_READWRITE
00854                        };
00855 
00856 
00857 
00858 
00859 
00860 
00861 ACCESS_MASK 
MmMakeSectionAccess[8] = { SECTION_MAP_READ,
00862                                        SECTION_MAP_READ,
00863                                        SECTION_MAP_EXECUTE,
00864                                        SECTION_MAP_EXECUTE | SECTION_MAP_READ,
00865                                        SECTION_MAP_WRITE,
00866                                        SECTION_MAP_READ,
00867                                        SECTION_MAP_EXECUTE | SECTION_MAP_WRITE,
00868                                        SECTION_MAP_EXECUTE | SECTION_MAP_READ };
00869 
00870 
00871 
00872 
00873 
00874 
00875 ACCESS_MASK 
MmMakeFileAccess[8] = { FILE_READ_DATA,
00876                                 FILE_READ_DATA,
00877                                 FILE_EXECUTE,
00878                                 FILE_EXECUTE | FILE_READ_DATA,
00879                                 FILE_WRITE_DATA | FILE_READ_DATA,
00880                                 FILE_READ_DATA,
00881                                 FILE_EXECUTE | FILE_WRITE_DATA | FILE_READ_DATA,
00882                                 FILE_EXECUTE | FILE_READ_DATA };
00883 
00884 MM_PAGED_POOL_INFO MmPagedPoolInfo;
00885 
00886 
00887 
00888 
00889 
00890 BOOLEAN 
MiHydra;
00891 
00892 ULONG_PTR 
MmSessionBase;
00893 PMM_SESSION_SPACE MmSessionSpace;
00894 
00895 LIST_ENTRY 
MiSessionWsList;
00896 
00897 ULONG_PTR 
MiSystemViewStart;
00898 
00899 
00900 
00901 
00902 
00903 
00904 ULONG 
MiIoRetryLevel = 25;
00905 ULONG 
MiFaultRetries = 25;
00906 ULONG 
MiUserIoRetryLevel = 10;
00907 ULONG 
MiUserFaultRetries = 10;
00908 
00909 
#ifdef ALLOC_DATA_PRAGMA
00910 
#pragma data_seg("INIT")
00911 
#endif
00912 
00913 WCHAR 
MmVerifyDriverBuffer[
MI_SUSPECT_DRIVER_BUFFER_LENGTH];
00914 ULONG 
MmVerifyDriverBufferLength = 
sizeof(
MmVerifyDriverBuffer);
00915 ULONG 
MmVerifyDriverBufferType = REG_NONE;
00916 ULONG 
MmVerifyDriverLevel = (ULONG)-1;
00917 
00918 
#ifdef ALLOC_DATA_PRAGMA
00919 
#pragma data_seg()
00920 
#endif