2 * PROJECT: ReactOS Kernel
3 * LICENSE: GPL - See COPYING in the top level directory
4 * FILE: ntoskrnl/config/cmdata.c
5 * PURPOSE: Configuration Manager - Global Configuration Data
6 * PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org)
9 /* INCLUDES ******************************************************************/
14 #include "./../mm/ARM3/miarm.h"
16 /* GLOBALS *******************************************************************/
20 extern ULONG MmProductType
;
22 WCHAR CmDefaultLanguageId
[12];
23 ULONG CmDefaultLanguageIdLength
= sizeof(CmDefaultLanguageId
);
24 ULONG CmDefaultLanguageIdType
;
26 WCHAR CmInstallUILanguageId
[12];
27 ULONG CmInstallUILanguageIdLength
= sizeof(CmInstallUILanguageId
);
28 ULONG CmInstallUILanguageIdType
;
30 WCHAR CmSuiteBuffer
[128];
31 ULONG CmSuiteBufferLength
= sizeof(CmSuiteBuffer
);
32 ULONG CmSuiteBufferType
;
36 ULONG CmpConfigurationAreaSize
= PAGE_SIZE
* 4;
37 PCM_FULL_RESOURCE_DESCRIPTOR CmpConfigurationData
;
39 EX_PUSH_LOCK CmpHiveListHeadLock
, CmpLoadHiveLock
;
41 HIVE_LIST_ENTRY CmpMachineHiveList
[] =
43 { L
"HARDWARE", L
"MACHINE\\", NULL
, HIVE_VOLATILE
, 0 , NULL
, FALSE
, FALSE
, FALSE
},
44 { L
"SECURITY", L
"MACHINE\\", NULL
, 0 , 0 , NULL
, FALSE
, FALSE
, FALSE
},
45 { L
"SOFTWARE", L
"MACHINE\\", NULL
, 0 , 0 , NULL
, FALSE
, FALSE
, FALSE
},
46 { L
"SYSTEM", L
"MACHINE\\", NULL
, 0 , 0 , NULL
, FALSE
, FALSE
, FALSE
},
47 { L
"DEFAULT", L
"USER\\.DEFAULT", NULL
, 0 , 0 , NULL
, FALSE
, FALSE
, FALSE
},
48 { L
"SAM", L
"MACHINE\\", NULL
, HIVE_NOLAZYFLUSH
, 0 , NULL
, FALSE
, FALSE
, FALSE
},
49 { NULL
, NULL
, 0, 0 , 0 , NULL
, FALSE
, FALSE
, FALSE
}
52 UNICODE_STRING CmSymbolicLinkValueName
=
53 RTL_CONSTANT_STRING(L
"SymbolicLinkValue");
55 UNICODE_STRING CmpLoadOptions
;
57 BOOLEAN CmpShareSystemHives
;
58 BOOLEAN CmSelfHeal
= TRUE
;
59 BOOLEAN CmpSelfHeal
= TRUE
;
60 BOOLEAN CmpMiniNTBoot
;
63 USHORT CmpUnknownBusCount
;
64 ULONG CmpTypeCount
[MaximumType
+ 1];
66 HANDLE CmpRegistryRootHandle
;
68 INIT_FUNCTION UNICODE_STRING CmClassName
[MaximumClass
+ 1] =
70 RTL_CONSTANT_STRING(L
"System"),
71 RTL_CONSTANT_STRING(L
"Processor"),
72 RTL_CONSTANT_STRING(L
"Cache"),
73 RTL_CONSTANT_STRING(L
"Adapter"),
74 RTL_CONSTANT_STRING(L
"Controller"),
75 RTL_CONSTANT_STRING(L
"Peripheral"),
76 RTL_CONSTANT_STRING(L
"MemoryClass"),
77 RTL_CONSTANT_STRING(L
"Undefined")
80 INIT_FUNCTION UNICODE_STRING CmTypeName
[MaximumType
+ 1] =
82 RTL_CONSTANT_STRING(L
"System"),
83 RTL_CONSTANT_STRING(L
"CentralProcessor"),
84 RTL_CONSTANT_STRING(L
"FloatingPointProcessor"),
85 RTL_CONSTANT_STRING(L
"PrimaryICache"),
86 RTL_CONSTANT_STRING(L
"PrimaryDCache"),
87 RTL_CONSTANT_STRING(L
"SecondaryICache"),
88 RTL_CONSTANT_STRING(L
"SecondaryDCache"),
89 RTL_CONSTANT_STRING(L
"SecondaryCache"),
90 RTL_CONSTANT_STRING(L
"EisaAdapter"),
91 RTL_CONSTANT_STRING(L
"TcAdapter"),
92 RTL_CONSTANT_STRING(L
"ScsiAdapter"),
93 RTL_CONSTANT_STRING(L
"DtiAdapter"),
94 RTL_CONSTANT_STRING(L
"MultifunctionAdapter"),
95 RTL_CONSTANT_STRING(L
"DiskController"),
96 RTL_CONSTANT_STRING(L
"TapeController"),
97 RTL_CONSTANT_STRING(L
"CdRomController"),
98 RTL_CONSTANT_STRING(L
"WormController"),
99 RTL_CONSTANT_STRING(L
"SerialController"),
100 RTL_CONSTANT_STRING(L
"NetworkController"),
101 RTL_CONSTANT_STRING(L
"DisplayController"),
102 RTL_CONSTANT_STRING(L
"ParallelController"),
103 RTL_CONSTANT_STRING(L
"PointerController"),
104 RTL_CONSTANT_STRING(L
"KeyboardController"),
105 RTL_CONSTANT_STRING(L
"AudioController"),
106 RTL_CONSTANT_STRING(L
"OtherController"),
107 RTL_CONSTANT_STRING(L
"DiskPeripheral"),
108 RTL_CONSTANT_STRING(L
"FloppyDiskPeripheral"),
109 RTL_CONSTANT_STRING(L
"TapePeripheral"),
110 RTL_CONSTANT_STRING(L
"ModemPeripheral"),
111 RTL_CONSTANT_STRING(L
"MonitorPeripheral"),
112 RTL_CONSTANT_STRING(L
"PrinterPeripheral"),
113 RTL_CONSTANT_STRING(L
"PointerPeripheral"),
114 RTL_CONSTANT_STRING(L
"KeyboardPeripheral"),
115 RTL_CONSTANT_STRING(L
"TerminalPeripheral"),
116 RTL_CONSTANT_STRING(L
"OtherPeripheral"),
117 RTL_CONSTANT_STRING(L
"LinePeripheral"),
118 RTL_CONSTANT_STRING(L
"NetworkPeripheral"),
119 RTL_CONSTANT_STRING(L
"SystemMemory"),
120 RTL_CONSTANT_STRING(L
"DockingInformation"),
121 RTL_CONSTANT_STRING(L
"RealModeIrqRoutingTable"),
122 RTL_CONSTANT_STRING(L
"RealModePCIEnumeration"),
123 RTL_CONSTANT_STRING(L
"Undefined")
126 INIT_FUNCTION CMP_MF_TYPE CmpMultifunctionTypes
[] =
129 {"MCA", MicroChannel
, 0},
132 {"PCMCIA", PCMCIABus
, 0},
134 {"MPIPI", MPIBus
, 0},
135 {"MPSA", MPSABus
, 0},
139 INIT_FUNCTION CM_SYSTEM_CONTROL_VECTOR CmControlVector
[] =
151 L
"ObjectSecurityMode",
159 L
"LUIDDeviceMapsDisabled",
167 L
"AuditBaseDirectories",
183 L
"ProcessAccessesToAudit",
190 L
"TimeZoneInformation",
198 L
"TimeZoneInformation",
206 L
"TimeZoneInformation",
207 L
"RealTimeIsUniversal",
222 L
"Session Manager\\Memory Management",
230 L
"Session Manager\\Memory Management",
231 L
"NonPagedPoolQuota",
238 L
"Session Manager\\Memory Management",
246 L
"Session Manager\\Memory Management",
247 L
"AllocationPreference",
254 L
"Session Manager\\Memory Management",
262 L
"Session Manager\\Memory Management",
270 L
"Session Manager\\Memory Management",
278 L
"Session Manager\\Memory Management",
286 L
"Session Manager\\Memory Management",
294 L
"Session Manager\\Memory Management",
296 &MmConsumedPoolPercentage
,
302 L
"Session Manager\\Memory Management",
303 L
"MapAllocationFragment",
304 &MmAllocationFragment
,
310 L
"Session Manager\\Memory Management",
312 &MmSizeOfPagedPoolInBytes
,
318 L
"Session Manager\\Memory Management",
320 &MmSizeOfNonPagedPoolInBytes
,
326 L
"Session Manager\\Memory Management",
327 L
"NonPagedPoolMaximumPercent",
334 L
"Session Manager\\Memory Management",
342 L
"Session Manager\\Memory Management",
350 L
"Session Manager\\Memory Management",
352 &MmNumberOfSystemPtes
,
358 L
"Session Manager\\Memory Management",
359 L
"LowMemoryThreshold",
360 &MmLowMemoryThreshold
,
366 L
"Session Manager\\Memory Management",
367 L
"HighMemoryThreshold",
368 &MmHighMemoryThreshold
,
374 L
"Session Manager\\Memory Management",
375 L
"DisablePagingExecutive",
376 &MmDisablePagingExecutive
,
382 L
"Session Manager\\Memory Management",
390 L
"Session Manager\\Memory Management",
391 L
"SecondLevelDataCache",
398 L
"Session Manager\\Memory Management",
399 L
"ClearPageFileAtShutdown",
406 L
"Session Manager\\Memory Management",
407 L
"PoolTagSmallTableSize",
414 L
"Session Manager\\Memory Management",
415 L
"PoolTagBigTableSize",
422 L
"Session Manager\\Memory Management",
430 L
"Session Manager\\Memory Management",
438 L
"Session Manager\\Memory Management",
446 L
"Session Manager\\Memory Management",
447 L
"ProtectNonPagedPool",
448 &MmProtectFreedNonPagedPool
,
454 L
"Session Manager\\Memory Management",
462 L
"Session Manager\\Memory Management",
470 L
"Session Manager\\Memory Management",
472 MmVerifyDriverBuffer
,
473 &MmVerifyDriverBufferLength
,
474 &MmVerifyDriverBufferType
478 L
"Session Manager\\Memory Management",
479 L
"VerifyDriverLevel",
480 &MmVerifyDriverLevel
,
486 L
"Session Manager\\Memory Management",
494 L
"Session Manager\\Memory Management",
502 L
"Session Manager\\Memory Management",
503 L
"EnforceWriteProtection",
504 &MmEnforceWriteProtection
,
510 L
"Session Manager\\Memory Management",
518 L
"Session Manager\\Memory Management",
526 L
"Session Manager\\Memory Management",
527 L
"MinimumStackCommitInBytes",
528 &MmMinimumStackCommitInBytes
,
534 L
"Session Manager\\Executive",
535 L
"AdditionalCriticalWorkerThreads",
542 L
"Session Manager\\Executive",
543 L
"AdditionalDelayedWorkerThreads",
550 L
"Session Manager\\Executive",
551 L
"PriorityQuantumMatrix",
558 L
"Session Manager\\Kernel",
566 L
"Session Manager\\Kernel",
574 L
"Session Manager\\Kernel",
575 L
"AdjustDpcThreshold",
582 L
"Session Manager\\Kernel",
590 L
"Session Manager\\I/O System",
598 L
"Session Manager\\I/O System",
599 L
"LargeIrpStackLocations",
606 L
"Session Manager\\I/O System",
615 L
"ResourceTimeoutCount",
623 L
"CriticalSectionTimeout",
624 &MmCritsectTimeoutSeconds
,
631 L
"HeapSegmentReserve",
632 &MmHeapSegmentReserve
,
638 L
"HeapSegmentCommit",
639 &MmHeapSegmentCommit
,
646 L
"HeapDeCommitTotalFreeThreshold",
647 &MmHeapDeCommitTotalFreeThreshold
,
654 L
"HeapDeCommitFreeBlockThreshold",
655 &MmHeapDeCommitFreeBlockThreshold
,
689 &CmSuiteBufferLength
,
713 &CmDefaultLanguageIdLength
,
714 &CmDefaultLanguageIdType
720 CmInstallUILanguageId
,
721 &CmInstallUILanguageIdLength
,
722 &CmInstallUILanguageIdType
727 L
"RegistrySizeLimit",
735 L
"ForceNpxEmulation",
743 L
"PowerPolicySimulate",
750 L
"Session Manager\\Executive",
751 L
"MaxTimeSeparationBeforeCorrect",
767 L
"Win32PrioritySeparation",
768 &PsRawPrioritySeparation
,
775 L
"EnableTimerWatchdog",
784 &KdpContext
.KdpDefaultRetries
,
790 L
"Session Manager\\Debug Print Filter",
797 /* TODO: Add the other masks */
809 L
"UsePerformanceClock",