Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygencmdata.c
Go to the documentation of this file.
00001 /* 00002 * PROJECT: ReactOS Kernel 00003 * LICENSE: GPL - See COPYING in the top level directory 00004 * FILE: ntoskrnl/config/cmdata.c 00005 * PURPOSE: Configuration Manager - Global Configuration Data 00006 * PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org) 00007 */ 00008 00009 /* INCLUDES ******************************************************************/ 00010 00011 #include "ntoskrnl.h" 00012 #define NDEBUG 00013 #include "debug.h" 00014 #include "./../mm/ARM3/miarm.h" 00015 00016 /* GLOBALS *******************************************************************/ 00017 00018 ULONG DummyData; 00019 ULONG CmNtGlobalFlag; 00020 extern ULONG MmProductType; 00021 00022 WCHAR CmDefaultLanguageId[12]; 00023 ULONG CmDefaultLanguageIdLength = sizeof(CmDefaultLanguageId); 00024 ULONG CmDefaultLanguageIdType; 00025 00026 WCHAR CmInstallUILanguageId[12]; 00027 ULONG CmInstallUILanguageIdLength = sizeof(CmInstallUILanguageId); 00028 ULONG CmInstallUILanguageIdType; 00029 00030 WCHAR CmSuiteBuffer[128]; 00031 ULONG CmSuiteBufferLength = sizeof(CmSuiteBuffer); 00032 ULONG CmSuiteBufferType; 00033 00034 CMHIVE CmControlHive; 00035 00036 ULONG CmpConfigurationAreaSize = PAGE_SIZE * 4; 00037 PCM_FULL_RESOURCE_DESCRIPTOR CmpConfigurationData; 00038 00039 EX_PUSH_LOCK CmpHiveListHeadLock, CmpLoadHiveLock; 00040 00041 HIVE_LIST_ENTRY CmpMachineHiveList[] = 00042 { 00043 { L"HARDWARE", L"MACHINE\\", NULL, HIVE_VOLATILE , 0 , NULL, FALSE, FALSE, FALSE}, 00044 { L"SECURITY", L"MACHINE\\", NULL, 0 , 0 , NULL, FALSE, FALSE, FALSE}, 00045 { L"SOFTWARE", L"MACHINE\\", NULL, 0 , 0 , NULL, FALSE, FALSE, FALSE}, 00046 { L"SYSTEM", L"MACHINE\\", NULL, 0 , 0 , NULL, FALSE, FALSE, FALSE}, 00047 { L"DEFAULT", L"USER\\.DEFAULT", NULL, 0 , 0 , NULL, FALSE, FALSE, FALSE}, 00048 { L"SAM", L"MACHINE\\", NULL, HIVE_NOLAZYFLUSH , 0 , NULL, FALSE, FALSE, FALSE}, 00049 { NULL, NULL, 0, 0 , 0 , NULL, FALSE, FALSE, FALSE} 00050 }; 00051 00052 UNICODE_STRING CmSymbolicLinkValueName = 00053 RTL_CONSTANT_STRING(L"SymbolicLinkValue"); 00054 00055 UNICODE_STRING CmpLoadOptions; 00056 00057 BOOLEAN CmpShareSystemHives; 00058 BOOLEAN CmSelfHeal = TRUE; 00059 BOOLEAN CmpSelfHeal = TRUE; 00060 BOOLEAN CmpMiniNTBoot; 00061 ULONG CmpBootType; 00062 00063 USHORT CmpUnknownBusCount; 00064 ULONG CmpTypeCount[MaximumType + 1]; 00065 00066 HANDLE CmpRegistryRootHandle; 00067 00068 INIT_FUNCTION UNICODE_STRING CmClassName[MaximumClass + 1] = 00069 { 00070 RTL_CONSTANT_STRING(L"System"), 00071 RTL_CONSTANT_STRING(L"Processor"), 00072 RTL_CONSTANT_STRING(L"Cache"), 00073 RTL_CONSTANT_STRING(L"Adapter"), 00074 RTL_CONSTANT_STRING(L"Controller"), 00075 RTL_CONSTANT_STRING(L"Peripheral"), 00076 RTL_CONSTANT_STRING(L"MemoryClass"), 00077 RTL_CONSTANT_STRING(L"Undefined") 00078 }; 00079 00080 INIT_FUNCTION UNICODE_STRING CmTypeName[MaximumType + 1] = 00081 { 00082 RTL_CONSTANT_STRING(L"System"), 00083 RTL_CONSTANT_STRING(L"CentralProcessor"), 00084 RTL_CONSTANT_STRING(L"FloatingPointProcessor"), 00085 RTL_CONSTANT_STRING(L"PrimaryICache"), 00086 RTL_CONSTANT_STRING(L"PrimaryDCache"), 00087 RTL_CONSTANT_STRING(L"SecondaryICache"), 00088 RTL_CONSTANT_STRING(L"SecondaryDCache"), 00089 RTL_CONSTANT_STRING(L"SecondaryCache"), 00090 RTL_CONSTANT_STRING(L"EisaAdapter"), 00091 RTL_CONSTANT_STRING(L"TcAdapter"), 00092 RTL_CONSTANT_STRING(L"ScsiAdapter"), 00093 RTL_CONSTANT_STRING(L"DtiAdapter"), 00094 RTL_CONSTANT_STRING(L"MultifunctionAdapter"), 00095 RTL_CONSTANT_STRING(L"DiskController"), 00096 RTL_CONSTANT_STRING(L"TapeController"), 00097 RTL_CONSTANT_STRING(L"CdRomController"), 00098 RTL_CONSTANT_STRING(L"WormController"), 00099 RTL_CONSTANT_STRING(L"SerialController"), 00100 RTL_CONSTANT_STRING(L"NetworkController"), 00101 RTL_CONSTANT_STRING(L"DisplayController"), 00102 RTL_CONSTANT_STRING(L"ParallelController"), 00103 RTL_CONSTANT_STRING(L"PointerController"), 00104 RTL_CONSTANT_STRING(L"KeyboardController"), 00105 RTL_CONSTANT_STRING(L"AudioController"), 00106 RTL_CONSTANT_STRING(L"OtherController"), 00107 RTL_CONSTANT_STRING(L"DiskPeripheral"), 00108 RTL_CONSTANT_STRING(L"FloppyDiskPeripheral"), 00109 RTL_CONSTANT_STRING(L"TapePeripheral"), 00110 RTL_CONSTANT_STRING(L"ModemPeripheral"), 00111 RTL_CONSTANT_STRING(L"MonitorPeripheral"), 00112 RTL_CONSTANT_STRING(L"PrinterPeripheral"), 00113 RTL_CONSTANT_STRING(L"PointerPeripheral"), 00114 RTL_CONSTANT_STRING(L"KeyboardPeripheral"), 00115 RTL_CONSTANT_STRING(L"TerminalPeripheral"), 00116 RTL_CONSTANT_STRING(L"OtherPeripheral"), 00117 RTL_CONSTANT_STRING(L"LinePeripheral"), 00118 RTL_CONSTANT_STRING(L"NetworkPeripheral"), 00119 RTL_CONSTANT_STRING(L"SystemMemory"), 00120 RTL_CONSTANT_STRING(L"DockingInformation"), 00121 RTL_CONSTANT_STRING(L"RealModeIrqRoutingTable"), 00122 RTL_CONSTANT_STRING(L"RealModePCIEnumeration"), 00123 RTL_CONSTANT_STRING(L"Undefined") 00124 }; 00125 00126 INIT_FUNCTION CMP_MF_TYPE CmpMultifunctionTypes[] = 00127 { 00128 {"ISA", Isa, 0}, 00129 {"MCA", MicroChannel, 0}, 00130 {"PCI", PCIBus, 0}, 00131 {"VME", VMEBus, 0}, 00132 {"PCMCIA", PCMCIABus, 0}, 00133 {"CBUS", CBus, 0}, 00134 {"MPIPI", MPIBus, 0}, 00135 {"MPSA", MPSABus, 0}, 00136 {NULL, Internal, 0} 00137 }; 00138 00139 INIT_FUNCTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] = 00140 { 00141 { 00142 L"Session Manager", 00143 L"ProtectionMode", 00144 &DummyData, 00145 NULL, 00146 NULL 00147 }, 00148 00149 { 00150 L"Session Manager", 00151 L"ObjectSecurityMode", 00152 &DummyData, 00153 NULL, 00154 NULL 00155 }, 00156 00157 { 00158 L"Session Manager", 00159 L"LUIDDeviceMapsDisabled", 00160 &DummyData, 00161 NULL, 00162 NULL 00163 }, 00164 00165 { 00166 L"LSA", 00167 L"AuditBaseDirectories", 00168 &DummyData, 00169 NULL, 00170 NULL 00171 }, 00172 00173 { 00174 L"LSA", 00175 L"AuditBaseObjects", 00176 &DummyData, 00177 NULL, 00178 NULL 00179 }, 00180 00181 { 00182 L"LSA\\audit", 00183 L"ProcessAccessesToAudit", 00184 &DummyData, 00185 NULL, 00186 NULL 00187 }, 00188 00189 { 00190 L"TimeZoneInformation", 00191 L"ActiveTimeBias", 00192 &DummyData, 00193 NULL, 00194 NULL 00195 }, 00196 00197 { 00198 L"TimeZoneInformation", 00199 L"Bias", 00200 &DummyData, 00201 NULL, 00202 NULL 00203 }, 00204 00205 { 00206 L"TimeZoneInformation", 00207 L"RealTimeIsUniversal", 00208 &DummyData, 00209 NULL, 00210 NULL 00211 }, 00212 00213 { 00214 L"Session Manager", 00215 L"GlobalFlag", 00216 &CmNtGlobalFlag, 00217 NULL, 00218 NULL 00219 }, 00220 00221 { 00222 L"Session Manager\\Memory Management", 00223 L"PagedPoolQuota", 00224 &DummyData, 00225 NULL, 00226 NULL 00227 }, 00228 00229 { 00230 L"Session Manager\\Memory Management", 00231 L"NonPagedPoolQuota", 00232 &DummyData, 00233 NULL, 00234 NULL 00235 }, 00236 00237 { 00238 L"Session Manager\\Memory Management", 00239 L"PagingFileQuota", 00240 &DummyData, 00241 NULL, 00242 NULL 00243 }, 00244 00245 { 00246 L"Session Manager\\Memory Management", 00247 L"AllocationPreference", 00248 &DummyData, 00249 NULL, 00250 NULL 00251 }, 00252 00253 { 00254 L"Session Manager\\Memory Management", 00255 L"DynamicMemory", 00256 &MmDynamicPfn, 00257 NULL, 00258 NULL 00259 }, 00260 00261 { 00262 L"Session Manager\\Memory Management", 00263 L"Mirroring", 00264 &MmMirroring, 00265 NULL, 00266 NULL 00267 }, 00268 00269 { 00270 L"Session Manager\\Memory Management", 00271 L"SystemViewSize", 00272 &DummyData, 00273 NULL, 00274 NULL 00275 }, 00276 00277 { 00278 L"Session Manager\\Memory Management", 00279 L"SessionImageSize", 00280 &DummyData, 00281 NULL, 00282 NULL 00283 }, 00284 00285 { 00286 L"Session Manager\\Memory Management", 00287 L"SessionPoolSize", 00288 &DummyData, 00289 NULL, 00290 NULL 00291 }, 00292 00293 { 00294 L"Session Manager\\Memory Management", 00295 L"PoolUsageMaximum", 00296 &MmConsumedPoolPercentage, 00297 NULL, 00298 NULL 00299 }, 00300 00301 { 00302 L"Session Manager\\Memory Management", 00303 L"MapAllocationFragment", 00304 &MmAllocationFragment, 00305 NULL, 00306 NULL 00307 }, 00308 00309 { 00310 L"Session Manager\\Memory Management", 00311 L"PagedPoolSize", 00312 &MmSizeOfPagedPoolInBytes, 00313 NULL, 00314 NULL 00315 }, 00316 00317 { 00318 L"Session Manager\\Memory Management", 00319 L"NonPagedPoolSize", 00320 &MmSizeOfNonPagedPoolInBytes, 00321 NULL, 00322 NULL 00323 }, 00324 00325 { 00326 L"Session Manager\\Memory Management", 00327 L"NonPagedPoolMaximumPercent", 00328 &DummyData, 00329 NULL, 00330 NULL 00331 }, 00332 00333 { 00334 L"Session Manager\\Memory Management", 00335 L"LargeSystemCache", 00336 &MmLargeSystemCache, 00337 NULL, 00338 NULL 00339 }, 00340 00341 { 00342 L"Session Manager\\Memory Management", 00343 L"LargeStackSize", 00344 &DummyData, 00345 NULL, 00346 NULL 00347 }, 00348 00349 { 00350 L"Session Manager\\Memory Management", 00351 L"SystemPages", 00352 &MmNumberOfSystemPtes, 00353 NULL, 00354 NULL 00355 }, 00356 00357 { 00358 L"Session Manager\\Memory Management", 00359 L"LowMemoryThreshold", 00360 &MmLowMemoryThreshold, 00361 NULL, 00362 NULL 00363 }, 00364 00365 { 00366 L"Session Manager\\Memory Management", 00367 L"HighMemoryThreshold", 00368 &MmHighMemoryThreshold, 00369 NULL, 00370 NULL 00371 }, 00372 00373 { 00374 L"Session Manager\\Memory Management", 00375 L"DisablePagingExecutive", 00376 &MmDisablePagingExecutive, 00377 NULL, 00378 NULL 00379 }, 00380 00381 { 00382 L"Session Manager\\Memory Management", 00383 L"ModifiedPageLife", 00384 &DummyData, 00385 NULL, 00386 NULL 00387 }, 00388 00389 { 00390 L"Session Manager\\Memory Management", 00391 L"SecondLevelDataCache", 00392 &MmSecondaryColors, 00393 NULL, 00394 NULL 00395 }, 00396 00397 { 00398 L"Session Manager\\Memory Management", 00399 L"ClearPageFileAtShutdown", 00400 &MmZeroPageFile, 00401 NULL, 00402 NULL 00403 }, 00404 00405 { 00406 L"Session Manager\\Memory Management", 00407 L"PoolTagSmallTableSize", 00408 &DummyData, 00409 NULL, 00410 NULL 00411 }, 00412 00413 { 00414 L"Session Manager\\Memory Management", 00415 L"PoolTagBigTableSize", 00416 &DummyData, 00417 NULL, 00418 NULL 00419 }, 00420 00421 { 00422 L"Session Manager\\Memory Management", 00423 L"PoolTag", 00424 &DummyData, 00425 NULL, 00426 NULL 00427 }, 00428 00429 { 00430 L"Session Manager\\Memory Management", 00431 L"PoolTagOverruns", 00432 &DummyData, 00433 NULL, 00434 NULL 00435 }, 00436 00437 { 00438 L"Session Manager\\Memory Management", 00439 L"SnapUnloads", 00440 &DummyData, 00441 NULL, 00442 NULL 00443 }, 00444 00445 { 00446 L"Session Manager\\Memory Management", 00447 L"ProtectNonPagedPool", 00448 &MmProtectFreedNonPagedPool, 00449 NULL, 00450 NULL 00451 }, 00452 00453 { 00454 L"Session Manager\\Memory Management", 00455 L"TrackLockedPages", 00456 &MmTrackLockedPages, 00457 NULL, 00458 NULL 00459 }, 00460 00461 { 00462 L"Session Manager\\Memory Management", 00463 L"TrackPtes", 00464 &MmTrackPtes, 00465 NULL, 00466 NULL 00467 }, 00468 00469 { 00470 L"Session Manager\\Memory Management", 00471 L"VerifyDrivers", 00472 MmVerifyDriverBuffer, 00473 &MmVerifyDriverBufferLength, 00474 &MmVerifyDriverBufferType 00475 }, 00476 00477 { 00478 L"Session Manager\\Memory Management", 00479 L"VerifyDriverLevel", 00480 &MmVerifyDriverLevel, 00481 NULL, 00482 NULL 00483 }, 00484 00485 { 00486 L"Session Manager\\Memory Management", 00487 L"VerifyMode", 00488 &DummyData, 00489 NULL, 00490 NULL 00491 }, 00492 00493 { 00494 L"Session Manager\\Memory Management", 00495 L"LargePageMinimum", 00496 &DummyData, 00497 NULL, 00498 NULL 00499 }, 00500 00501 { 00502 L"Session Manager\\Memory Management", 00503 L"EnforceWriteProtection", 00504 &MmEnforceWriteProtection, 00505 NULL, 00506 NULL 00507 }, 00508 00509 { 00510 L"Session Manager\\Memory Management", 00511 L"MakeLowMemory", 00512 &MmMakeLowMemory, 00513 NULL, 00514 NULL 00515 }, 00516 00517 { 00518 L"Session Manager\\Memory Management", 00519 L"WriteWatch", 00520 &DummyData, 00521 NULL, 00522 NULL 00523 }, 00524 00525 { 00526 L"Session Manager\\Executive", 00527 L"AdditionalCriticalWorkerThreads", 00528 &DummyData, 00529 NULL, 00530 NULL 00531 }, 00532 00533 { 00534 L"Session Manager\\Executive", 00535 L"AdditionalDelayedWorkerThreads", 00536 &DummyData, 00537 NULL, 00538 NULL 00539 }, 00540 00541 { 00542 L"Session Manager\\Executive", 00543 L"PriorityQuantumMatrix", 00544 &DummyData, 00545 &DummyData, 00546 NULL 00547 }, 00548 00549 { 00550 L"Session Manager\\Kernel", 00551 L"DpcQueueDepth", 00552 &DummyData, 00553 NULL, 00554 NULL 00555 }, 00556 00557 { 00558 L"Session Manager\\Kernel", 00559 L"MinimumDpcRate", 00560 &DummyData, 00561 NULL, 00562 NULL 00563 }, 00564 00565 { 00566 L"Session Manager\\Kernel", 00567 L"AdjustDpcThreshold", 00568 &DummyData, 00569 NULL, 00570 NULL 00571 }, 00572 00573 { 00574 L"Session Manager\\Kernel", 00575 L"IdealDpcRate", 00576 &DummyData, 00577 NULL, 00578 NULL 00579 }, 00580 00581 { 00582 L"Session Manager\\I/O System", 00583 L"CountOperations", 00584 &DummyData, 00585 NULL, 00586 NULL 00587 }, 00588 00589 { 00590 L"Session Manager\\I/O System", 00591 L"LargeIrpStackLocations", 00592 &DummyData, 00593 NULL, 00594 NULL 00595 }, 00596 00597 { 00598 L"Session Manager\\I/O System", 00599 L"IoVerifierLevel", 00600 &DummyData, 00601 NULL, 00602 NULL 00603 }, 00604 00605 { 00606 L"Session Manager", 00607 L"ResourceTimeoutCount", 00608 &DummyData, 00609 NULL, 00610 NULL 00611 }, 00612 00613 { 00614 L"Session Manager", 00615 L"CriticalSectionTimeout", 00616 &DummyData, 00617 NULL, 00618 NULL 00619 }, 00620 00621 { 00622 L"Session Manager", 00623 L"HeapSegmentReserve", 00624 &DummyData, 00625 NULL, 00626 NULL 00627 }, 00628 00629 { 00630 L"Session Manager", 00631 L"HeapSegmentCommit", 00632 &DummyData, 00633 NULL, 00634 NULL 00635 }, 00636 00637 { 00638 L"Session Manager", 00639 L"HeapDeCommitTotalFreeThreshold", 00640 &DummyData, 00641 NULL, 00642 NULL 00643 }, 00644 00645 { 00646 L"Session Manager", 00647 L"HeapDeCommitFreeBlockThreshold", 00648 &DummyData, 00649 NULL, 00650 NULL 00651 }, 00652 00653 { 00654 L"ProductOptions", 00655 L"ProductType", 00656 &MmProductType, 00657 NULL, 00658 NULL 00659 }, 00660 00661 { 00662 L"Terminal Server", 00663 L"TSEnabled", 00664 &DummyData, 00665 NULL, 00666 NULL 00667 }, 00668 00669 { 00670 L"Terminal Server", 00671 L"TSAppCompat", 00672 &DummyData, 00673 NULL, 00674 NULL 00675 }, 00676 00677 00678 { 00679 L"ProductOptions", 00680 L"ProductSuite", 00681 CmSuiteBuffer, 00682 &CmSuiteBufferLength, 00683 &CmSuiteBufferType 00684 }, 00685 00686 { 00687 L"Windows", 00688 L"CSDVersion", 00689 &CmNtCSDVersion, 00690 NULL, 00691 NULL 00692 }, 00693 00694 { 00695 L"Nls\\Language", 00696 L"Default", 00697 CmDefaultLanguageId, 00698 &CmDefaultLanguageIdLength, 00699 &CmDefaultLanguageIdType 00700 }, 00701 00702 { 00703 L"Nls\\Language", 00704 L"InstallLanguage", 00705 CmInstallUILanguageId, 00706 &CmInstallUILanguageIdLength, 00707 &CmInstallUILanguageIdType 00708 }, 00709 00710 { 00711 L"\0\0", 00712 L"RegistrySizeLimit", 00713 &DummyData, 00714 &DummyData, 00715 &DummyData 00716 }, 00717 00718 { 00719 L"Session Manager", 00720 L"ForceNpxEmulation", 00721 &DummyData, 00722 NULL, 00723 NULL 00724 }, 00725 00726 { 00727 L"Session Manager", 00728 L"PowerPolicySimulate", 00729 &DummyData, 00730 NULL, 00731 NULL 00732 }, 00733 00734 { 00735 L"Session Manager\\Executive", 00736 L"MaxTimeSeparationBeforeCorrect", 00737 &DummyData, 00738 NULL, 00739 NULL 00740 }, 00741 00742 { 00743 L"Windows", 00744 L"ShutdownTime", 00745 &DummyData, 00746 &DummyData, 00747 NULL 00748 }, 00749 00750 { 00751 L"PriorityControl", 00752 L"Win32PrioritySeparation", 00753 &DummyData, 00754 NULL, 00755 NULL 00756 }, 00757 00758 { 00759 L"Session Manager", 00760 L"EnableTimerWatchdog", 00761 &DummyData, 00762 NULL, 00763 NULL 00764 }, 00765 00766 { 00767 L"Session Manager", 00768 L"Debugger Retries", 00769 &KdpContext.KdpDefaultRetries, 00770 NULL, 00771 NULL 00772 }, 00773 00774 { 00775 L"Session Manager\\Debug Print Filter", 00776 L"WIN2000", 00777 &Kd_WIN2000_Mask, 00778 NULL, 00779 NULL 00780 }, 00781 00782 /* TODO: Add the other masks */ 00783 00784 { 00785 L"WMI", 00786 L"MaxEventSize", 00787 &DummyData, 00788 NULL, 00789 NULL 00790 }, 00791 00792 { 00793 L"WMI\\Trace", 00794 L"UsePerformanceClock", 00795 &DummyData, 00796 NULL, 00797 NULL 00798 }, 00799 00800 { 00801 L"WMI\\Trace", 00802 L"TraceAlignment", 00803 &DummyData, 00804 NULL, 00805 NULL 00806 }, 00807 00808 { 00809 NULL, 00810 NULL, 00811 NULL, 00812 NULL, 00813 NULL 00814 } 00815 }; Generated on Mon May 28 2012 04:36:56 for ReactOS by
1.7.6.1
|