xref: /reactos/ntoskrnl/config/cmdata.c (revision a1842426)
1 /*
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)
7  */
8 
9 /* INCLUDES ******************************************************************/
10 
11 #include "ntoskrnl.h"
12 #define NDEBUG
13 #include "debug.h"
14 #include "./../mm/ARM3/miarm.h"
15 
16 /* GLOBALS *******************************************************************/
17 
18 ULONG DummyData;
19 ULONG CmNtGlobalFlag;
20 extern ULONG MmProductType;
21 
22 WCHAR CmDefaultLanguageId[12];
23 ULONG CmDefaultLanguageIdLength = sizeof(CmDefaultLanguageId);
24 ULONG CmDefaultLanguageIdType;
25 
26 WCHAR CmInstallUILanguageId[12];
27 ULONG CmInstallUILanguageIdLength = sizeof(CmInstallUILanguageId);
28 ULONG CmInstallUILanguageIdType;
29 
30 WCHAR CmSuiteBuffer[128];
31 ULONG CmSuiteBufferLength = sizeof(CmSuiteBuffer);
32 ULONG CmSuiteBufferType;
33 
34 CMHIVE CmControlHive;
35 
36 ULONG CmpConfigurationAreaSize = PAGE_SIZE * 4;
37 PCM_FULL_RESOURCE_DESCRIPTOR CmpConfigurationData;
38 
39 EX_PUSH_LOCK CmpHiveListHeadLock, CmpLoadHiveLock;
40 
41 HIVE_LIST_ENTRY CmpMachineHiveList[] =
42 {
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}
50 };
51 
52 UNICODE_STRING CmSymbolicLinkValueName =
53     RTL_CONSTANT_STRING(L"SymbolicLinkValue");
54 
55 UNICODE_STRING CmpLoadOptions;
56 
57 /* TRUE if all hives must be loaded in shared mode */
58 ULONG CmpVolatileBoot;
59 /* TRUE if the system hives must be loaded in shared mode */
60 BOOLEAN CmpShareSystemHives;
61 /* TRUE when the registry is in PE mode */
62 BOOLEAN CmpMiniNTBoot;
63 
64 ULONG CmpBootType;
65 ULONG CmSelfHeal = TRUE;
66 BOOLEAN CmpSelfHeal = TRUE;
67 
68 USHORT CmpUnknownBusCount;
69 ULONG CmpTypeCount[MaximumType + 1];
70 
71 HANDLE CmpRegistryRootHandle;
72 
73 DATA_SEG("INITDATA") UNICODE_STRING CmClassName[MaximumClass + 1] =
74 {
75     RTL_CONSTANT_STRING(L"System"),
76     RTL_CONSTANT_STRING(L"Processor"),
77     RTL_CONSTANT_STRING(L"Cache"),
78     RTL_CONSTANT_STRING(L"Adapter"),
79     RTL_CONSTANT_STRING(L"Controller"),
80     RTL_CONSTANT_STRING(L"Peripheral"),
81     RTL_CONSTANT_STRING(L"MemoryClass"),
82     RTL_CONSTANT_STRING(L"Undefined")
83 };
84 
85 DATA_SEG("INITDATA") UNICODE_STRING CmTypeName[MaximumType + 1] =
86 {
87     RTL_CONSTANT_STRING(L"System"),
88     RTL_CONSTANT_STRING(L"CentralProcessor"),
89     RTL_CONSTANT_STRING(L"FloatingPointProcessor"),
90     RTL_CONSTANT_STRING(L"PrimaryICache"),
91     RTL_CONSTANT_STRING(L"PrimaryDCache"),
92     RTL_CONSTANT_STRING(L"SecondaryICache"),
93     RTL_CONSTANT_STRING(L"SecondaryDCache"),
94     RTL_CONSTANT_STRING(L"SecondaryCache"),
95     RTL_CONSTANT_STRING(L"EisaAdapter"),
96     RTL_CONSTANT_STRING(L"TcAdapter"),
97     RTL_CONSTANT_STRING(L"ScsiAdapter"),
98     RTL_CONSTANT_STRING(L"DtiAdapter"),
99     RTL_CONSTANT_STRING(L"MultifunctionAdapter"),
100     RTL_CONSTANT_STRING(L"DiskController"),
101     RTL_CONSTANT_STRING(L"TapeController"),
102     RTL_CONSTANT_STRING(L"CdRomController"),
103     RTL_CONSTANT_STRING(L"WormController"),
104     RTL_CONSTANT_STRING(L"SerialController"),
105     RTL_CONSTANT_STRING(L"NetworkController"),
106     RTL_CONSTANT_STRING(L"DisplayController"),
107     RTL_CONSTANT_STRING(L"ParallelController"),
108     RTL_CONSTANT_STRING(L"PointerController"),
109     RTL_CONSTANT_STRING(L"KeyboardController"),
110     RTL_CONSTANT_STRING(L"AudioController"),
111     RTL_CONSTANT_STRING(L"OtherController"),
112     RTL_CONSTANT_STRING(L"DiskPeripheral"),
113     RTL_CONSTANT_STRING(L"FloppyDiskPeripheral"),
114     RTL_CONSTANT_STRING(L"TapePeripheral"),
115     RTL_CONSTANT_STRING(L"ModemPeripheral"),
116     RTL_CONSTANT_STRING(L"MonitorPeripheral"),
117     RTL_CONSTANT_STRING(L"PrinterPeripheral"),
118     RTL_CONSTANT_STRING(L"PointerPeripheral"),
119     RTL_CONSTANT_STRING(L"KeyboardPeripheral"),
120     RTL_CONSTANT_STRING(L"TerminalPeripheral"),
121     RTL_CONSTANT_STRING(L"OtherPeripheral"),
122     RTL_CONSTANT_STRING(L"LinePeripheral"),
123     RTL_CONSTANT_STRING(L"NetworkPeripheral"),
124     RTL_CONSTANT_STRING(L"SystemMemory"),
125     RTL_CONSTANT_STRING(L"DockingInformation"),
126     RTL_CONSTANT_STRING(L"RealModeIrqRoutingTable"),
127     RTL_CONSTANT_STRING(L"RealModePCIEnumeration"),
128     RTL_CONSTANT_STRING(L"Undefined")
129 };
130 
131 DATA_SEG("INITDATA") CMP_MF_TYPE CmpMultifunctionTypes[] =
132 {
133     {"ISA", Isa, 0},
134     {"MCA", MicroChannel, 0},
135     {"PCI", PCIBus, 0},
136     {"VME", VMEBus, 0},
137     {"PCMCIA", PCMCIABus, 0},
138     {"CBUS", CBus, 0},
139     {"MPIPI", MPIBus, 0},
140     {"MPSA", MPSABus, 0},
141     {NULL, Internal, 0}
142 };
143 
144 DATA_SEG("INITDATA") CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
145 {
146     {
147         L"Session Manager",
148         L"ProtectionMode",
149         &ObpProtectionMode,
150         NULL,
151         NULL
152     },
153     {
154         L"Session Manager",
155         L"ObjectSecurityMode",
156         &ObpObjectSecurityMode,
157         NULL,
158         NULL
159     },
160     {
161         L"Session Manager",
162         L"LUIDDeviceMapsDisabled",
163         &ObpLUIDDeviceMapsDisabled,
164         NULL,
165         NULL
166     },
167     {
168         L"LSA",
169         L"AuditBaseDirectories",
170         &DummyData,
171         NULL,
172         NULL
173     },
174     {
175         L"LSA",
176         L"AuditBaseObjects",
177         &DummyData,
178         NULL,
179         NULL
180     },
181     {
182         L"LSA\\audit",
183         L"ProcessAccessesToAudit",
184         &DummyData,
185         NULL,
186         NULL
187     },
188     {
189         L"TimeZoneInformation",
190         L"ActiveTimeBias",
191         &DummyData,
192         NULL,
193         NULL
194     },
195     {
196         L"TimeZoneInformation",
197         L"Bias",
198         &DummyData,
199         NULL,
200         NULL
201     },
202     {
203         L"TimeZoneInformation",
204         L"RealTimeIsUniversal",
205         &DummyData,
206         NULL,
207         NULL
208     },
209     {
210         L"Session Manager",
211         L"GlobalFlag",
212         &CmNtGlobalFlag,
213         NULL,
214         NULL
215     },
216     {
217         L"Session Manager\\Memory Management",
218         L"PagedPoolQuota",
219         &DummyData,
220         NULL,
221         NULL
222     },
223     {
224         L"Session Manager\\Memory Management",
225         L"NonPagedPoolQuota",
226         &DummyData,
227         NULL,
228         NULL
229     },
230     {
231         L"Session Manager\\Memory Management",
232         L"PagingFileQuota",
233         &DummyData,
234         NULL,
235         NULL
236     },
237     {
238         L"Session Manager\\Memory Management",
239         L"AllocationPreference",
240         &DummyData,
241         NULL,
242         NULL
243     },
244     {
245         L"Session Manager\\Memory Management",
246         L"DynamicMemory",
247         &MmDynamicPfn,
248         NULL,
249         NULL
250     },
251     {
252         L"Session Manager\\Memory Management",
253         L"Mirroring",
254         &MmMirroring,
255         NULL,
256         NULL
257     },
258     {
259         L"Session Manager\\Memory Management",
260         L"SystemViewSize",
261         &DummyData,
262         NULL,
263         NULL
264     },
265     {
266         L"Session Manager\\Memory Management",
267         L"SessionImageSize",
268         &DummyData,
269         NULL,
270         NULL
271     },
272     {
273         L"Session Manager\\Memory Management",
274         L"SessionPoolSize",
275         &DummyData,
276         NULL,
277         NULL
278     },
279     {
280         L"Session Manager\\Memory Management",
281         L"PoolUsageMaximum",
282         &MmConsumedPoolPercentage,
283         NULL,
284         NULL
285     },
286     {
287         L"Session Manager\\Memory Management",
288         L"MapAllocationFragment",
289         &MmAllocationFragment,
290         NULL,
291         NULL
292     },
293     {
294         L"Session Manager\\Memory Management",
295         L"PagedPoolSize",
296         &MmSizeOfPagedPoolInBytes,
297         NULL,
298         NULL
299     },
300     {
301         L"Session Manager\\Memory Management",
302         L"NonPagedPoolSize",
303         &MmSizeOfNonPagedPoolInBytes,
304         NULL,
305         NULL
306     },
307     {
308         L"Session Manager\\Memory Management",
309         L"NonPagedPoolMaximumPercent",
310         &DummyData,
311         NULL,
312         NULL
313     },
314     {
315         L"Session Manager\\Memory Management",
316         L"LargeSystemCache",
317         &MmLargeSystemCache,
318         NULL,
319         NULL
320     },
321     {
322         L"Session Manager\\Memory Management",
323         L"LargeStackSize",
324         &MmLargeStackSize,
325         NULL,
326         NULL
327     },
328     {
329         L"Session Manager\\Memory Management",
330         L"SystemPages",
331         &MmNumberOfSystemPtes,
332         NULL,
333         NULL
334     },
335     {
336         L"Session Manager\\Memory Management",
337         L"LowMemoryThreshold",
338         &MmLowMemoryThreshold,
339         NULL,
340         NULL
341     },
342     {
343         L"Session Manager\\Memory Management",
344         L"HighMemoryThreshold",
345         &MmHighMemoryThreshold,
346         NULL,
347         NULL
348     },
349     {
350         L"Session Manager\\Memory Management",
351         L"DisablePagingExecutive",
352         &MmDisablePagingExecutive,
353         NULL,
354         NULL
355     },
356     {
357         L"Session Manager\\Memory Management",
358         L"ModifiedPageLife",
359         &DummyData,
360         NULL,
361         NULL
362     },
363     {
364         L"Session Manager\\Memory Management",
365         L"SecondLevelDataCache",
366         &MmSecondaryColors,
367         NULL,
368         NULL
369     },
370     {
371         L"Session Manager\\Memory Management",
372         L"ClearPageFileAtShutdown",
373         &MmZeroPageFile,
374         NULL,
375         NULL
376     },
377     {
378         L"Session Manager\\Memory Management",
379         L"PoolTagSmallTableSize",
380         &DummyData,
381         NULL,
382         NULL
383     },
384     {
385         L"Session Manager\\Memory Management",
386         L"PoolTagBigTableSize",
387         &DummyData,
388         NULL,
389         NULL
390     },
391     {
392         L"Session Manager\\Memory Management",
393         L"PoolTag",
394         &DummyData,
395         NULL,
396         NULL
397     },
398     {
399         L"Session Manager\\Memory Management",
400         L"PoolTagOverruns",
401         &DummyData,
402         NULL,
403         NULL
404     },
405     {
406         L"Session Manager\\Memory Management",
407         L"SnapUnloads",
408         &DummyData,
409         NULL,
410         NULL
411     },
412     {
413         L"Session Manager\\Memory Management",
414         L"ProtectNonPagedPool",
415         &MmProtectFreedNonPagedPool,
416         NULL,
417         NULL
418     },
419     {
420         L"Session Manager\\Memory Management",
421         L"TrackLockedPages",
422         &MmTrackLockedPages,
423         NULL,
424         NULL
425     },
426     {
427         L"Session Manager\\Memory Management",
428         L"TrackPtes",
429         &MmTrackPtes,
430         NULL,
431         NULL
432     },
433     {
434         L"Session Manager\\Memory Management",
435         L"VerifyDrivers",
436         MmVerifyDriverBuffer,
437         &MmVerifyDriverBufferLength,
438         &MmVerifyDriverBufferType
439     },
440     {
441         L"Session Manager\\Memory Management",
442         L"VerifyDriverLevel",
443         &MmVerifyDriverLevel,
444         NULL,
445         NULL
446     },
447     {
448         L"Session Manager\\Memory Management",
449         L"VerifyMode",
450         &DummyData,
451         NULL,
452         NULL
453     },
454     {
455         L"Session Manager\\Memory Management",
456         L"LargePageMinimum",
457         &DummyData,
458         NULL,
459         NULL
460     },
461     {
462         L"Session Manager\\Memory Management",
463         L"EnforceWriteProtection",
464         &MmEnforceWriteProtection,
465         NULL,
466         NULL
467     },
468     {
469         L"Session Manager\\Memory Management",
470         L"MakeLowMemory",
471         &MmMakeLowMemory,
472         NULL,
473         NULL
474     },
475     {
476         L"Session Manager\\Memory Management",
477         L"WriteWatch",
478         &DummyData,
479         NULL,
480         NULL
481     },
482     {
483         L"Session Manager\\Memory Management",
484         L"MinimumStackCommitInBytes",
485         &MmMinimumStackCommitInBytes,
486         NULL,
487         NULL
488     },
489     {
490         L"Session Manager\\Executive",
491         L"AdditionalCriticalWorkerThreads",
492         &DummyData,
493         NULL,
494         NULL
495     },
496     {
497         L"Session Manager\\Executive",
498         L"AdditionalDelayedWorkerThreads",
499         &DummyData,
500         NULL,
501         NULL
502     },
503     {
504         L"Session Manager\\Executive",
505         L"PriorityQuantumMatrix",
506         &DummyData,
507         &DummyData,
508         NULL
509     },
510     {
511         L"Session Manager\\Kernel",
512         L"DpcQueueDepth",
513         &DummyData,
514         NULL,
515         NULL
516     },
517     {
518         L"Session Manager\\Kernel",
519         L"MinimumDpcRate",
520         &DummyData,
521         NULL,
522         NULL
523     },
524     {
525         L"Session Manager\\Kernel",
526         L"AdjustDpcThreshold",
527         &DummyData,
528         NULL,
529         NULL
530     },
531     {
532         L"Session Manager\\Kernel",
533         L"IdealDpcRate",
534         &DummyData,
535         NULL,
536         NULL
537     },
538     {
539         L"Session Manager\\Kernel",
540         L"ObUnsecureGlobalNames",
541         ObpUnsecureGlobalNamesBuffer,
542         &ObpUnsecureGlobalNamesLength,
543         NULL
544     },
545     {
546         L"Session Manager\\I/O System",
547         L"CountOperations",
548         &DummyData,
549         NULL,
550         NULL
551     },
552     {
553         L"Session Manager\\I/O System",
554         L"LargeIrpStackLocations",
555         &DummyData,
556         NULL,
557         NULL
558     },
559     {
560         L"Session Manager\\I/O System",
561         L"IoVerifierLevel",
562         &DummyData,
563         NULL,
564         NULL
565     },
566     {
567         L"Session Manager",
568         L"ResourceTimeoutCount",
569         &ExpResourceTimeoutCount,
570         NULL,
571         NULL
572     },
573     {
574         L"Session Manager",
575         L"CriticalSectionTimeout",
576         &MmCritsectTimeoutSeconds,
577         NULL,
578         NULL
579     },
580     {
581         L"Session Manager",
582         L"HeapSegmentReserve",
583         &MmHeapSegmentReserve,
584         NULL,
585         NULL
586     },
587     {
588         L"Session Manager",
589         L"HeapSegmentCommit",
590         &MmHeapSegmentCommit,
591         NULL,
592         NULL
593     },
594     {
595         L"Session Manager",
596         L"HeapDeCommitTotalFreeThreshold",
597         &MmHeapDeCommitTotalFreeThreshold,
598         NULL,
599         NULL
600     },
601     {
602         L"Session Manager",
603         L"HeapDeCommitFreeBlockThreshold",
604         &MmHeapDeCommitFreeBlockThreshold,
605         NULL,
606         NULL
607     },
608     {
609         L"ProductOptions",
610         L"ProductType",
611         &MmProductType,
612         NULL,
613         NULL
614     },
615     {
616         L"Terminal Server",
617         L"TSEnabled",
618         &DummyData,
619         NULL,
620         NULL
621     },
622     {
623         L"Terminal Server",
624         L"TSAppCompat",
625         &DummyData,
626         NULL,
627         NULL
628     },
629     {
630         L"ProductOptions",
631         L"ProductSuite",
632         CmSuiteBuffer,
633         &CmSuiteBufferLength,
634         &CmSuiteBufferType
635     },
636     {
637         L"Windows",
638         L"CSDVersion",
639         &CmNtCSDVersion,
640         NULL,
641         NULL
642     },
643     {
644         L"Windows",
645         L"CSDReleaseType",
646         &CmNtCSDReleaseType,
647         NULL,
648         NULL
649     },
650     {
651         L"Nls\\Language",
652         L"Default",
653         CmDefaultLanguageId,
654         &CmDefaultLanguageIdLength,
655         &CmDefaultLanguageIdType
656     },
657     {
658         L"Nls\\Language",
659         L"InstallLanguage",
660         CmInstallUILanguageId,
661         &CmInstallUILanguageIdLength,
662         &CmInstallUILanguageIdType
663     },
664     {
665         L"\0\0",
666         L"RegistrySizeLimit",
667         &DummyData,
668         &DummyData,
669         &DummyData
670     },
671     {
672         L"Session Manager\\Configuration Manager",
673         L"SelfHealingEnabled",
674         &CmSelfHeal,
675         NULL,
676         NULL
677     },
678     {
679         L"Session Manager\\Configuration Manager",
680         L"RegistryLazyFlushInterval",
681         &CmpLazyFlushIntervalInSeconds,
682         NULL,
683         NULL
684     },
685     {
686         L"Session Manager\\Configuration Manager",
687         L"RegistryLazyFlushHiveCount",
688         &CmpLazyFlushHiveCount,
689         NULL,
690         NULL
691     },
692     {
693         L"Session Manager\\Configuration Manager",
694         L"DelayCloseSize",
695         &CmpDelayedCloseSize,
696         NULL,
697         NULL
698     },
699     {
700         L"Session Manager\\Configuration Manager",
701         L"VolatileBoot",
702         &CmpVolatileBoot,
703         NULL,
704         NULL
705     },
706     {
707         L"Session Manager",
708         L"ForceNpxEmulation",
709         &DummyData,
710         NULL,
711         NULL
712     },
713     {
714         L"Session Manager",
715         L"PowerPolicySimulate",
716         &DummyData,
717         NULL,
718         NULL
719     },
720     {
721         L"Session Manager\\Executive",
722         L"MaxTimeSeparationBeforeCorrect",
723         &DummyData,
724         NULL,
725         NULL
726     },
727     {
728         L"Windows",
729         L"ShutdownTime",
730         &DummyData,
731         &DummyData,
732         NULL
733     },
734     {
735         L"PriorityControl",
736         L"Win32PrioritySeparation",
737         &PsRawPrioritySeparation,
738         NULL,
739         NULL
740     },
741     {
742         L"Session Manager",
743         L"EnableTimerWatchdog",
744         &DummyData,
745         NULL,
746         NULL
747     },
748     {
749         L"Session Manager",
750         L"Debugger Retries",
751         &KdpContext.KdpDefaultRetries,
752         NULL,
753         NULL
754     },
755 
756 //
757 // Debug Filter Masks - See kd64/kddata.c
758 //
759 
760 #define WTEXT(s) L##s
761 #define CM_DEBUG_PRINT_FILTER(Name) \
762     { \
763         L"Session Manager\\Debug Print Filter", \
764         WTEXT(#Name), \
765         &Kd_##Name##_Mask, \
766         NULL, \
767         NULL \
768     }
769 
770     CM_DEBUG_PRINT_FILTER(WIN2000),
771     CM_DEBUG_PRINT_FILTER(SYSTEM),
772     CM_DEBUG_PRINT_FILTER(SMSS),
773     CM_DEBUG_PRINT_FILTER(SETUP),
774     CM_DEBUG_PRINT_FILTER(NTFS),
775     CM_DEBUG_PRINT_FILTER(FSTUB),
776     CM_DEBUG_PRINT_FILTER(CRASHDUMP),
777     CM_DEBUG_PRINT_FILTER(CDAUDIO),
778     CM_DEBUG_PRINT_FILTER(CDROM),
779     CM_DEBUG_PRINT_FILTER(CLASSPNP),
780     CM_DEBUG_PRINT_FILTER(DISK),
781     CM_DEBUG_PRINT_FILTER(REDBOOK),
782     CM_DEBUG_PRINT_FILTER(STORPROP),
783     CM_DEBUG_PRINT_FILTER(SCSIPORT),
784     CM_DEBUG_PRINT_FILTER(SCSIMINIPORT),
785     CM_DEBUG_PRINT_FILTER(CONFIG),
786     CM_DEBUG_PRINT_FILTER(I8042PRT),
787     CM_DEBUG_PRINT_FILTER(SERMOUSE),
788     CM_DEBUG_PRINT_FILTER(LSERMOUS),
789     CM_DEBUG_PRINT_FILTER(KBDHID),
790     CM_DEBUG_PRINT_FILTER(MOUHID),
791     CM_DEBUG_PRINT_FILTER(KBDCLASS),
792     CM_DEBUG_PRINT_FILTER(MOUCLASS),
793     CM_DEBUG_PRINT_FILTER(TWOTRACK),
794     CM_DEBUG_PRINT_FILTER(WMILIB),
795     CM_DEBUG_PRINT_FILTER(ACPI),
796     CM_DEBUG_PRINT_FILTER(AMLI),
797     CM_DEBUG_PRINT_FILTER(HALIA64),
798     CM_DEBUG_PRINT_FILTER(VIDEO),
799     CM_DEBUG_PRINT_FILTER(SVCHOST),
800     CM_DEBUG_PRINT_FILTER(VIDEOPRT),
801     CM_DEBUG_PRINT_FILTER(TCPIP),
802     CM_DEBUG_PRINT_FILTER(DMSYNTH),
803     CM_DEBUG_PRINT_FILTER(NTOSPNP),
804     CM_DEBUG_PRINT_FILTER(FASTFAT),
805     CM_DEBUG_PRINT_FILTER(SAMSS),
806     CM_DEBUG_PRINT_FILTER(PNPMGR),
807     CM_DEBUG_PRINT_FILTER(NETAPI),
808     CM_DEBUG_PRINT_FILTER(SCSERVER),
809     CM_DEBUG_PRINT_FILTER(SCCLIENT),
810     CM_DEBUG_PRINT_FILTER(SERIAL),
811     CM_DEBUG_PRINT_FILTER(SERENUM),
812     CM_DEBUG_PRINT_FILTER(UHCD),
813     CM_DEBUG_PRINT_FILTER(RPCPROXY),
814     CM_DEBUG_PRINT_FILTER(AUTOCHK),
815     CM_DEBUG_PRINT_FILTER(DCOMSS),
816     CM_DEBUG_PRINT_FILTER(UNIMODEM),
817     CM_DEBUG_PRINT_FILTER(SIS),
818     CM_DEBUG_PRINT_FILTER(FLTMGR),
819     CM_DEBUG_PRINT_FILTER(WMICORE),
820     CM_DEBUG_PRINT_FILTER(BURNENG),
821     CM_DEBUG_PRINT_FILTER(IMAPI),
822     CM_DEBUG_PRINT_FILTER(SXS),
823     CM_DEBUG_PRINT_FILTER(FUSION),
824     CM_DEBUG_PRINT_FILTER(IDLETASK),
825     CM_DEBUG_PRINT_FILTER(SOFTPCI),
826     CM_DEBUG_PRINT_FILTER(TAPE),
827     CM_DEBUG_PRINT_FILTER(MCHGR),
828     CM_DEBUG_PRINT_FILTER(IDEP),
829     CM_DEBUG_PRINT_FILTER(PCIIDE),
830     CM_DEBUG_PRINT_FILTER(FLOPPY),
831     CM_DEBUG_PRINT_FILTER(FDC),
832     CM_DEBUG_PRINT_FILTER(TERMSRV),
833     CM_DEBUG_PRINT_FILTER(W32TIME),
834     CM_DEBUG_PRINT_FILTER(PREFETCHER),
835     CM_DEBUG_PRINT_FILTER(RSFILTER),
836     CM_DEBUG_PRINT_FILTER(FCPORT),
837     CM_DEBUG_PRINT_FILTER(PCI),
838     CM_DEBUG_PRINT_FILTER(DMIO),
839     CM_DEBUG_PRINT_FILTER(DMCONFIG),
840     CM_DEBUG_PRINT_FILTER(DMADMIN),
841     CM_DEBUG_PRINT_FILTER(WSOCKTRANSPORT),
842     CM_DEBUG_PRINT_FILTER(VSS),
843     CM_DEBUG_PRINT_FILTER(PNPMEM),
844     CM_DEBUG_PRINT_FILTER(PROCESSOR),
845     CM_DEBUG_PRINT_FILTER(DMSERVER),
846     CM_DEBUG_PRINT_FILTER(SR),
847     CM_DEBUG_PRINT_FILTER(INFINIBAND),
848     CM_DEBUG_PRINT_FILTER(IHVDRIVER),
849     CM_DEBUG_PRINT_FILTER(IHVVIDEO),
850     CM_DEBUG_PRINT_FILTER(IHVAUDIO),
851     CM_DEBUG_PRINT_FILTER(IHVNETWORK),
852     CM_DEBUG_PRINT_FILTER(IHVSTREAMING),
853     CM_DEBUG_PRINT_FILTER(IHVBUS),
854     CM_DEBUG_PRINT_FILTER(HPS),
855     CM_DEBUG_PRINT_FILTER(RTLTHREADPOOL),
856     CM_DEBUG_PRINT_FILTER(LDR),
857     CM_DEBUG_PRINT_FILTER(TCPIP6),
858     CM_DEBUG_PRINT_FILTER(ISAPNP),
859     CM_DEBUG_PRINT_FILTER(SHPC),
860     CM_DEBUG_PRINT_FILTER(STORPORT),
861     CM_DEBUG_PRINT_FILTER(STORMINIPORT),
862     CM_DEBUG_PRINT_FILTER(PRINTSPOOLER),
863     CM_DEBUG_PRINT_FILTER(VSSDYNDISK),
864     CM_DEBUG_PRINT_FILTER(VERIFIER),
865     CM_DEBUG_PRINT_FILTER(VDS),
866     CM_DEBUG_PRINT_FILTER(VDSBAS),
867     CM_DEBUG_PRINT_FILTER(VDSDYN),  // Specified in Vista+
868     CM_DEBUG_PRINT_FILTER(VDSDYNDR),
869     CM_DEBUG_PRINT_FILTER(VDSLDR),  // Specified in Vista+
870     CM_DEBUG_PRINT_FILTER(VDSUTIL),
871     CM_DEBUG_PRINT_FILTER(DFRGIFC),
872     CM_DEBUG_PRINT_FILTER(DEFAULT),
873     CM_DEBUG_PRINT_FILTER(MM),
874     CM_DEBUG_PRINT_FILTER(DFSC),
875     CM_DEBUG_PRINT_FILTER(WOW64),
876 //
877 // Components specified in Vista+, some of which we also use in ReactOS
878 //
879     CM_DEBUG_PRINT_FILTER(ALPC),
880     CM_DEBUG_PRINT_FILTER(WDI),
881     CM_DEBUG_PRINT_FILTER(PERFLIB),
882     CM_DEBUG_PRINT_FILTER(KTM),
883     CM_DEBUG_PRINT_FILTER(IOSTRESS),
884     CM_DEBUG_PRINT_FILTER(HEAP),
885     CM_DEBUG_PRINT_FILTER(WHEA),
886     CM_DEBUG_PRINT_FILTER(USERGDI),
887     CM_DEBUG_PRINT_FILTER(MMCSS),
888     CM_DEBUG_PRINT_FILTER(TPM),
889     CM_DEBUG_PRINT_FILTER(THREADORDER),
890     CM_DEBUG_PRINT_FILTER(ENVIRON),
891     CM_DEBUG_PRINT_FILTER(EMS),
892     CM_DEBUG_PRINT_FILTER(WDT),
893     CM_DEBUG_PRINT_FILTER(FVEVOL),
894     CM_DEBUG_PRINT_FILTER(NDIS),
895     CM_DEBUG_PRINT_FILTER(NVCTRACE),
896     CM_DEBUG_PRINT_FILTER(LUAFV),
897     CM_DEBUG_PRINT_FILTER(APPCOMPAT),
898     CM_DEBUG_PRINT_FILTER(USBSTOR),
899     CM_DEBUG_PRINT_FILTER(SBP2PORT),
900     CM_DEBUG_PRINT_FILTER(COVERAGE),
901     CM_DEBUG_PRINT_FILTER(CACHEMGR),
902     CM_DEBUG_PRINT_FILTER(MOUNTMGR),
903     CM_DEBUG_PRINT_FILTER(CFR),
904     CM_DEBUG_PRINT_FILTER(TXF),
905     CM_DEBUG_PRINT_FILTER(KSECDD),
906     CM_DEBUG_PRINT_FILTER(FLTREGRESS),
907     CM_DEBUG_PRINT_FILTER(MPIO),
908     CM_DEBUG_PRINT_FILTER(MSDSM),
909     CM_DEBUG_PRINT_FILTER(UDFS),
910     CM_DEBUG_PRINT_FILTER(PSHED),
911     CM_DEBUG_PRINT_FILTER(STORVSP),
912     CM_DEBUG_PRINT_FILTER(LSASS),
913     CM_DEBUG_PRINT_FILTER(SSPICLI),
914     CM_DEBUG_PRINT_FILTER(CNG),
915     CM_DEBUG_PRINT_FILTER(EXFAT),
916     CM_DEBUG_PRINT_FILTER(FILETRACE),
917     CM_DEBUG_PRINT_FILTER(XSAVE),
918     CM_DEBUG_PRINT_FILTER(SE),
919     CM_DEBUG_PRINT_FILTER(DRIVEEXTENDER),
920 //
921 // Components specified in Windows 8
922 //
923     CM_DEBUG_PRINT_FILTER(POWER),
924     CM_DEBUG_PRINT_FILTER(CRASHDUMPXHCI),
925     CM_DEBUG_PRINT_FILTER(GPIO),
926     CM_DEBUG_PRINT_FILTER(REFS),
927     CM_DEBUG_PRINT_FILTER(WER),
928 //
929 // Components specified in Windows 10
930 //
931     CM_DEBUG_PRINT_FILTER(CAPIMG),
932     CM_DEBUG_PRINT_FILTER(VPCI),
933     CM_DEBUG_PRINT_FILTER(STORAGECLASSMEMORY),
934     CM_DEBUG_PRINT_FILTER(FSLIB),
935 
936 #undef WTEXT
937 #undef CM_DEBUG_PRINT_FILTER
938 
939 //
940 // END OF Debug Filter Masks
941 //
942 
943     {
944         L"WMI",
945         L"MaxEventSize",
946         &DummyData,
947         NULL,
948         NULL
949     },
950     {
951         L"WMI\\Trace",
952         L"UsePerformanceClock",
953         &DummyData,
954         NULL,
955         NULL
956     },
957     {
958         L"WMI\\Trace",
959         L"TraceAlignment",
960         &DummyData,
961         NULL,
962         NULL
963     },
964     {
965         L"CrashControl",
966         L"AutoReboot",
967         &IopAutoReboot,
968         NULL,
969         NULL
970     },
971     {
972         NULL,
973         NULL,
974         NULL,
975         NULL,
976         NULL
977     }
978 };
979