https://git.reactos.org/?p=reactos.git;a=commitdiff;h=6c1aac6948626bc7b9046895bdd640b0c0cd1ec1

commit 6c1aac6948626bc7b9046895bdd640b0c0cd1ec1
Author:     Hermès Bélusca-Maïto <[email protected]>
AuthorDate: Sun Nov 17 17:16:55 2019 +0100
Commit:     Hermès Bélusca-Maïto <[email protected]>
CommitDate: Sun Nov 17 23:21:53 2019 +0100

    [NTOS] Complete the support of Debug Filters. CORE-13529
    
    - KD64: Update the list of supported Debug Filter Masks (KdComponentTable)
      with the more up-to-date one from KDBG, that includes some components
      that have been added in Vista+, but some of which we also use in ReactOS.
    
    - NtQueryDebugFilterState(), NtSetDebugFilterState() and KdpPrint():
      Add the Vista+ behaviour or falling back to the DEFAULT component ID
      settings for unknown Components (compiled in only wheen NTDDI_VERSION >= 
NTDDI_VISTA).
      + Remove redundant comments and update these functions with SAL2 
annotations.
    
    - KDBG: Add extra documentation for the debug filter components list.
    
    - CONFIG: Load all the supported Debug Filter Masks settings from the
      registry.
---
 ntoskrnl/config/cmdata.c         | 1135 ++++++++++++++++++++++++++++++++++----
 ntoskrnl/include/internal/kd64.h |  165 +++++-
 ntoskrnl/kd64/kdapi.c            |   42 +-
 ntoskrnl/kd64/kddata.c           |   97 +++-
 ntoskrnl/kd64/kdprint.c          |   13 +-
 ntoskrnl/kdbg/kdb_cli.c          |   12 +-
 sdk/include/ndk/kdfuncs.h        |   10 +-
 7 files changed, 1351 insertions(+), 123 deletions(-)

diff --git a/ntoskrnl/config/cmdata.c b/ntoskrnl/config/cmdata.c
index 7a2c6af6c55..7b34fc936cb 100644
--- a/ntoskrnl/config/cmdata.c
+++ b/ntoskrnl/config/cmdata.c
@@ -145,7 +145,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager",
         L"ObjectSecurityMode",
@@ -153,7 +152,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager",
         L"LUIDDeviceMapsDisabled",
@@ -161,7 +159,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"LSA",
         L"AuditBaseDirectories",
@@ -169,7 +166,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"LSA",
         L"AuditBaseObjects",
@@ -177,7 +173,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"LSA\\audit",
         L"ProcessAccessesToAudit",
@@ -185,7 +180,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"TimeZoneInformation",
         L"ActiveTimeBias",
@@ -193,7 +187,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"TimeZoneInformation",
         L"Bias",
@@ -201,7 +194,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"TimeZoneInformation",
         L"RealTimeIsUniversal",
@@ -209,7 +201,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager",
         L"GlobalFlag",
@@ -217,7 +208,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager\\Memory Management",
         L"PagedPoolQuota",
@@ -225,7 +215,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager\\Memory Management",
         L"NonPagedPoolQuota",
@@ -233,7 +222,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager\\Memory Management",
         L"PagingFileQuota",
@@ -241,7 +229,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager\\Memory Management",
         L"AllocationPreference",
@@ -249,7 +236,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager\\Memory Management",
         L"DynamicMemory",
@@ -257,7 +243,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager\\Memory Management",
         L"Mirroring",
@@ -265,7 +250,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager\\Memory Management",
         L"SystemViewSize",
@@ -273,7 +257,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager\\Memory Management",
         L"SessionImageSize",
@@ -281,7 +264,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager\\Memory Management",
         L"SessionPoolSize",
@@ -289,7 +271,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager\\Memory Management",
         L"PoolUsageMaximum",
@@ -297,7 +278,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager\\Memory Management",
         L"MapAllocationFragment",
@@ -305,7 +285,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager\\Memory Management",
         L"PagedPoolSize",
@@ -313,7 +292,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager\\Memory Management",
         L"NonPagedPoolSize",
@@ -321,7 +299,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager\\Memory Management",
         L"NonPagedPoolMaximumPercent",
@@ -329,7 +306,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager\\Memory Management",
         L"LargeSystemCache",
@@ -337,7 +313,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager\\Memory Management",
         L"LargeStackSize",
@@ -345,7 +320,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager\\Memory Management",
         L"SystemPages",
@@ -353,7 +327,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager\\Memory Management",
         L"LowMemoryThreshold",
@@ -361,7 +334,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager\\Memory Management",
         L"HighMemoryThreshold",
@@ -369,7 +341,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager\\Memory Management",
         L"DisablePagingExecutive",
@@ -377,7 +348,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager\\Memory Management",
         L"ModifiedPageLife",
@@ -385,7 +355,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager\\Memory Management",
         L"SecondLevelDataCache",
@@ -393,7 +362,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager\\Memory Management",
         L"ClearPageFileAtShutdown",
@@ -401,7 +369,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager\\Memory Management",
         L"PoolTagSmallTableSize",
@@ -409,7 +376,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager\\Memory Management",
         L"PoolTagBigTableSize",
@@ -417,7 +383,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager\\Memory Management",
         L"PoolTag",
@@ -425,7 +390,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager\\Memory Management",
         L"PoolTagOverruns",
@@ -433,7 +397,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager\\Memory Management",
         L"SnapUnloads",
@@ -441,7 +404,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager\\Memory Management",
         L"ProtectNonPagedPool",
@@ -449,7 +411,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager\\Memory Management",
         L"TrackLockedPages",
@@ -457,7 +418,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager\\Memory Management",
         L"TrackPtes",
@@ -465,7 +425,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager\\Memory Management",
         L"VerifyDrivers",
@@ -473,7 +432,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         &MmVerifyDriverBufferLength,
         &MmVerifyDriverBufferType
     },
-
     {
         L"Session Manager\\Memory Management",
         L"VerifyDriverLevel",
@@ -481,7 +439,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager\\Memory Management",
         L"VerifyMode",
@@ -489,7 +446,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager\\Memory Management",
         L"LargePageMinimum",
@@ -497,7 +453,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager\\Memory Management",
         L"EnforceWriteProtection",
@@ -505,7 +460,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager\\Memory Management",
         L"MakeLowMemory",
@@ -513,7 +467,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager\\Memory Management",
         L"WriteWatch",
@@ -521,7 +474,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager\\Memory Management",
         L"MinimumStackCommitInBytes",
@@ -529,7 +481,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager\\Executive",
         L"AdditionalCriticalWorkerThreads",
@@ -537,7 +488,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager\\Executive",
         L"AdditionalDelayedWorkerThreads",
@@ -545,7 +495,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager\\Executive",
         L"PriorityQuantumMatrix",
@@ -553,7 +502,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         &DummyData,
         NULL
     },
-
     {
         L"Session Manager\\Kernel",
         L"DpcQueueDepth",
@@ -561,7 +509,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager\\Kernel",
         L"MinimumDpcRate",
@@ -569,7 +516,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager\\Kernel",
         L"AdjustDpcThreshold",
@@ -577,7 +523,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager\\Kernel",
         L"IdealDpcRate",
@@ -585,7 +530,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager\\Kernel",
         L"ObUnsecureGlobalNames",
@@ -593,7 +537,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         &ObpUnsecureGlobalNamesLength,
         NULL
     },
-
     {
         L"Session Manager\\I/O System",
         L"CountOperations",
@@ -601,7 +544,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager\\I/O System",
         L"LargeIrpStackLocations",
@@ -609,7 +551,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager\\I/O System",
         L"IoVerifierLevel",
@@ -617,7 +558,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager",
         L"ResourceTimeoutCount",
@@ -625,7 +565,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager",
         L"CriticalSectionTimeout",
@@ -633,7 +572,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager",
         L"HeapSegmentReserve",
@@ -648,7 +586,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager",
         L"HeapDeCommitTotalFreeThreshold",
@@ -656,7 +593,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager",
         L"HeapDeCommitFreeBlockThreshold",
@@ -664,7 +600,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"ProductOptions",
         L"ProductType",
@@ -672,7 +607,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Terminal Server",
         L"TSEnabled",
@@ -680,7 +614,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Terminal Server",
         L"TSAppCompat",
@@ -697,7 +630,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         &CmSuiteBufferLength,
         &CmSuiteBufferType
     },
-
     {
         L"Windows",
         L"CSDVersion",
@@ -705,7 +637,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Windows",
         L"CSDReleaseType",
@@ -713,7 +644,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Nls\\Language",
         L"Default",
@@ -721,7 +651,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         &CmDefaultLanguageIdLength,
         &CmDefaultLanguageIdType
     },
-
     {
         L"Nls\\Language",
         L"InstallLanguage",
@@ -729,7 +658,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         &CmInstallUILanguageIdLength,
         &CmInstallUILanguageIdType
     },
-
     {
         L"\0\0",
         L"RegistrySizeLimit",
@@ -737,7 +665,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         &DummyData,
         &DummyData
     },
-
     {
         L"Session Manager",
         L"ForceNpxEmulation",
@@ -745,7 +672,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager",
         L"PowerPolicySimulate",
@@ -753,7 +679,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager\\Executive",
         L"MaxTimeSeparationBeforeCorrect",
@@ -761,7 +686,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Windows",
         L"ShutdownTime",
@@ -769,7 +693,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         &DummyData,
         NULL
     },
-
     {
         L"PriorityControl",
         L"Win32PrioritySeparation",
@@ -777,7 +700,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager",
         L"EnableTimerWatchdog",
@@ -785,7 +707,6 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL,
         NULL
     },
-
     {
         L"Session Manager",
         L"Debugger Retries",
@@ -794,6 +715,9 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] =
         NULL
     },
 
+//
+// Debug Filter Masks - See kd64/kddata.c
+//
     {
         L"Session Manager\\Debug Print Filter",
         L"WIN2000",
@@ -801,33 +725,1056 @@ INIT_SECTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] 
=
         NULL,
         NULL
     },
-
-    /* TODO: Add the other masks */
-
     {
-        L"WMI",
-        L"MaxEventSize",
-        &DummyData,
+        L"Session Manager\\Debug Print Filter",
+        L"SYSTEM",
+        &Kd_SYSTEM_Mask,
         NULL,
         NULL
     },
-
     {
-        L"WMI\\Trace",
-        L"UsePerformanceClock",
-        &DummyData,
+        L"Session Manager\\Debug Print Filter",
+        L"SMSS",
+        &Kd_SMSS_Mask,
         NULL,
         NULL
     },
-
     {
-        L"WMI\\Trace",
-        L"TraceAlignment",
-        &DummyData,
+        L"Session Manager\\Debug Print Filter",
+        L"SETUP",
+        &Kd_SETUP_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"NTFS",
+        &Kd_NTFS_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"FSTUB",
+        &Kd_FSTUB_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"CRASHDUMP",
+        &Kd_CRASHDUMP_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"CDAUDIO",
+        &Kd_CDAUDIO_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"CDROM",
+        &Kd_CDROM_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"CLASSPNP",
+        &Kd_CLASSPNP_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"DISK",
+        &Kd_DISK_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"REDBOOK",
+        &Kd_REDBOOK_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"STORPROP",
+        &Kd_STORPROP_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"SCSIPORT",
+        &Kd_SCSIPORT_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"SCSIMINIPORT",
+        &Kd_SCSIMINIPORT_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"CONFIG",
+        &Kd_CONFIG_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"I8042PRT",
+        &Kd_I8042PRT_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"SERMOUSE",
+        &Kd_SERMOUSE_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"LSERMOUS",
+        &Kd_LSERMOUS_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"KBDHID",
+        &Kd_KBDHID_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"MOUHID",
+        &Kd_MOUHID_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"KBDCLASS",
+        &Kd_KBDCLASS_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"MOUCLASS",
+        &Kd_MOUCLASS_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"TWOTRACK",
+        &Kd_TWOTRACK_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"WMILIB",
+        &Kd_WMILIB_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"ACPI",
+        &Kd_ACPI_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"AMLI",
+        &Kd_AMLI_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"HALIA64",
+        &Kd_HALIA64_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"VIDEO",
+        &Kd_VIDEO_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"SVCHOST",
+        &Kd_SVCHOST_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"VIDEOPRT",
+        &Kd_VIDEOPRT_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"TCPIP",
+        &Kd_TCPIP_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"DMSYNTH",
+        &Kd_DMSYNTH_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"NTOSPNP",
+        &Kd_NTOSPNP_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"FASTFAT",
+        &Kd_FASTFAT_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"SAMSS",
+        &Kd_SAMSS_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"PNPMGR",
+        &Kd_PNPMGR_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"NETAPI",
+        &Kd_NETAPI_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"SCSERVER",
+        &Kd_SCSERVER_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"SCCLIENT",
+        &Kd_SCCLIENT_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"SERIAL",
+        &Kd_SERIAL_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"SERENUM",
+        &Kd_SERENUM_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"UHCD",
+        &Kd_UHCD_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"RPCPROXY",
+        &Kd_RPCPROXY_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"AUTOCHK",
+        &Kd_AUTOCHK_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"DCOMSS",
+        &Kd_DCOMSS_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"UNIMODEM",
+        &Kd_UNIMODEM_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"SIS",
+        &Kd_SIS_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"FLTMGR",
+        &Kd_FLTMGR_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"WMICORE",
+        &Kd_WMICORE_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"BURNENG",
+        &Kd_BURNENG_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"IMAPI",
+        &Kd_IMAPI_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"SXS",
+        &Kd_SXS_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"FUSION",
+        &Kd_FUSION_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"IDLETASK",
+        &Kd_IDLETASK_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"SOFTPCI",
+        &Kd_SOFTPCI_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"TAPE",
+        &Kd_TAPE_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"MCHGR",
+        &Kd_MCHGR_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"IDEP",
+        &Kd_IDEP_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"PCIIDE",
+        &Kd_PCIIDE_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"FLOPPY",
+        &Kd_FLOPPY_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"FDC",
+        &Kd_FDC_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"TERMSRV",
+        &Kd_TERMSRV_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"W32TIME",
+        &Kd_W32TIME_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"PREFETCHER",
+        &Kd_PREFETCHER_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"RSFILTER",
+        &Kd_RSFILTER_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"FCPORT",
+        &Kd_FCPORT_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"PCI",
+        &Kd_PCI_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"DMIO",
+        &Kd_DMIO_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"DMCONFIG",
+        &Kd_DMCONFIG_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"DMADMIN",
+        &Kd_DMADMIN_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"WSOCKTRANSPORT",
+        &Kd_WSOCKTRANSPORT_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"VSS",
+        &Kd_VSS_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"PNPMEM",
+        &Kd_PNPMEM_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"PROCESSOR",
+        &Kd_PROCESSOR_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"DMSERVER",
+        &Kd_DMSERVER_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"SR",
+        &Kd_SR_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"INFINIBAND",
+        &Kd_INFINIBAND_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"IHVDRIVER",
+        &Kd_IHVDRIVER_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"IHVVIDEO",
+        &Kd_IHVVIDEO_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"IHVAUDIO",
+        &Kd_IHVAUDIO_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"IHVNETWORK",
+        &Kd_IHVNETWORK_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"IHVSTREAMING",
+        &Kd_IHVSTREAMING_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"IHVBUS",
+        &Kd_IHVBUS_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"HPS",
+        &Kd_HPS_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"RTLTHREADPOOL",
+        &Kd_RTLTHREADPOOL_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"LDR",
+        &Kd_LDR_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"TCPIP6",
+        &Kd_TCPIP6_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"ISAPNP",
+        &Kd_ISAPNP_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"SHPC",
+        &Kd_SHPC_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"STORPORT",
+        &Kd_STORPORT_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"STORMINIPORT",
+        &Kd_STORMINIPORT_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"PRINTSPOOLER",
+        &Kd_PRINTSPOOLER_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"VSSDYNDISK",
+        &Kd_VSSDYNDISK_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"VERIFIER",
+        &Kd_VERIFIER_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"VDS",
+        &Kd_VDS_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"VDSBAS",
+        &Kd_VDSBAS_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"VDSDYN",
+        &Kd_VDSDYN_Mask,    // Specified in Vista+
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"VDSDYNDR",
+        &Kd_VDSDYNDR_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"VDSLDR",
+        &Kd_VDSLDR_Mask,    // Specified in Vista+
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"VDSUTIL",
+        &Kd_VDSUTIL_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"DFRGIFC",
+        &Kd_DFRGIFC_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"DEFAULT",
+        &Kd_DEFAULT_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"MM",
+        &Kd_MM_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"DFSC",
+        &Kd_DFSC_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"WOW64",
+        &Kd_WOW64_Mask,
+        NULL,
+        NULL
+    },
+//
+// Components specified in Vista+, some of which we also use in ReactOS
+//
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"ALPC",
+        &Kd_ALPC_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"WDI",
+        &Kd_WDI_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"PERFLIB",
+        &Kd_PERFLIB_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"KTM",
+        &Kd_KTM_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"IOSTRESS",
+        &Kd_IOSTRESS_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"HEAP",
+        &Kd_HEAP_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"WHEA",
+        &Kd_WHEA_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"USERGDI",
+        &Kd_USERGDI_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"MMCSS",
+        &Kd_MMCSS_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"TPM",
+        &Kd_TPM_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"THREADORDER",
+        &Kd_THREADORDER_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"ENVIRON",
+        &Kd_ENVIRON_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"EMS",
+        &Kd_EMS_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"WDT",
+        &Kd_WDT_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"FVEVOL",
+        &Kd_FVEVOL_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"NDIS",
+        &Kd_NDIS_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"NVCTRACE",
+        &Kd_NVCTRACE_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"LUAFV",
+        &Kd_LUAFV_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"APPCOMPAT",
+        &Kd_APPCOMPAT_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"USBSTOR",
+        &Kd_USBSTOR_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"SBP2PORT",
+        &Kd_SBP2PORT_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"COVERAGE",
+        &Kd_COVERAGE_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"CACHEMGR",
+        &Kd_CACHEMGR_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"MOUNTMGR",
+        &Kd_MOUNTMGR_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"CFR",
+        &Kd_CFR_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"TXF",
+        &Kd_TXF_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"KSECDD",
+        &Kd_KSECDD_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"FLTREGRESS",
+        &Kd_FLTREGRESS_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"MPIO",
+        &Kd_MPIO_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"MSDSM",
+        &Kd_MSDSM_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"UDFS",
+        &Kd_UDFS_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"PSHED",
+        &Kd_PSHED_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"STORVSP",
+        &Kd_STORVSP_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"LSASS",
+        &Kd_LSASS_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"SSPICLI",
+        &Kd_SSPICLI_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"CNG",
+        &Kd_CNG_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"EXFAT",
+        &Kd_EXFAT_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"FILETRACE",
+        &Kd_FILETRACE_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"XSAVE",
+        &Kd_XSAVE_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"SE",
+        &Kd_SE_Mask,
+        NULL,
+        NULL
+    },
+    {
+        L"Session Manager\\Debug Print Filter",
+        L"DRIVEEXTENDER",
+        &Kd_DRIVEEXTENDER_Mask,
+        NULL,
+        NULL
+    },
+//
+// END OF Debug Filter Masks
+//
+
+    {
+        L"WMI",
+        L"MaxEventSize",
+        &DummyData,
+        NULL,
+        NULL
+    },
+    {
+        L"WMI\\Trace",
+        L"UsePerformanceClock",
+        &DummyData,
+        NULL,
+        NULL
+    },
+    {
+        L"WMI\\Trace",
+        L"TraceAlignment",
+        &DummyData,
         NULL,
         NULL
     },
-
     {
         NULL,
         NULL,
diff --git a/ntoskrnl/include/internal/kd64.h b/ntoskrnl/include/internal/kd64.h
index 6917845a1b7..f1fa443c8da 100644
--- a/ntoskrnl/include/internal/kd64.h
+++ b/ntoskrnl/include/internal/kd64.h
@@ -546,9 +546,7 @@ extern BOOLEAN KdpControlCPressed;
 extern BOOLEAN KdpContextSent;
 extern KSPIN_LOCK KdpDebuggerLock;
 extern LARGE_INTEGER KdTimerStop, KdTimerStart, KdTimerDifference;
-extern ULONG KdComponentTableSize;
-extern ULONG Kd_WIN2000_Mask;
-extern PULONG KdComponentTable[104];
+
 extern CHAR KdpMessageBuffer[0x1000], KdpPathBuffer[0x1000];
 extern CHAR KdPrintDefaultCircularBuffer[KD_DEFAULT_LOG_BUFFER_SIZE];
 extern BREAKPOINT_ENTRY KdpBreakpointTable[KD_BREAKPOINT_MAX];
@@ -559,3 +557,164 @@ extern ULONG KdpNumInternalBreakpoints;
 extern ULONG_PTR KdpCurrentSymbolStart, KdpCurrentSymbolEnd;
 extern ULONG TraceDataBuffer[40];
 extern ULONG TraceDataBufferPosition;
+
+//
+// Debug Filter Component Table
+//
+#define MAX_KD_COMPONENT_TABLE_ENTRIES  147
+extern ULONG KdComponentTableSize;
+extern PULONG KdComponentTable[MAX_KD_COMPONENT_TABLE_ENTRIES];
+
+//
+// Debug Filter Masks
+//
+extern ULONG Kd_WIN2000_Mask;
+extern ULONG Kd_SYSTEM_Mask;
+extern ULONG Kd_SMSS_Mask;
+extern ULONG Kd_SETUP_Mask;
+extern ULONG Kd_NTFS_Mask;
+extern ULONG Kd_FSTUB_Mask;
+extern ULONG Kd_CRASHDUMP_Mask;
+extern ULONG Kd_CDAUDIO_Mask;
+extern ULONG Kd_CDROM_Mask;
+extern ULONG Kd_CLASSPNP_Mask;
+extern ULONG Kd_DISK_Mask;
+extern ULONG Kd_REDBOOK_Mask;
+extern ULONG Kd_STORPROP_Mask;
+extern ULONG Kd_SCSIPORT_Mask;
+extern ULONG Kd_SCSIMINIPORT_Mask;
+extern ULONG Kd_CONFIG_Mask;
+extern ULONG Kd_I8042PRT_Mask;
+extern ULONG Kd_SERMOUSE_Mask;
+extern ULONG Kd_LSERMOUS_Mask;
+extern ULONG Kd_KBDHID_Mask;
+extern ULONG Kd_MOUHID_Mask;
+extern ULONG Kd_KBDCLASS_Mask;
+extern ULONG Kd_MOUCLASS_Mask;
+extern ULONG Kd_TWOTRACK_Mask;
+extern ULONG Kd_WMILIB_Mask;
+extern ULONG Kd_ACPI_Mask;
+extern ULONG Kd_AMLI_Mask;
+extern ULONG Kd_HALIA64_Mask;
+extern ULONG Kd_VIDEO_Mask;
+extern ULONG Kd_SVCHOST_Mask;
+extern ULONG Kd_VIDEOPRT_Mask;
+extern ULONG Kd_TCPIP_Mask;
+extern ULONG Kd_DMSYNTH_Mask;
+extern ULONG Kd_NTOSPNP_Mask;
+extern ULONG Kd_FASTFAT_Mask;
+extern ULONG Kd_SAMSS_Mask;
+extern ULONG Kd_PNPMGR_Mask;
+extern ULONG Kd_NETAPI_Mask;
+extern ULONG Kd_SCSERVER_Mask;
+extern ULONG Kd_SCCLIENT_Mask;
+extern ULONG Kd_SERIAL_Mask;
+extern ULONG Kd_SERENUM_Mask;
+extern ULONG Kd_UHCD_Mask;
+extern ULONG Kd_RPCPROXY_Mask;
+extern ULONG Kd_AUTOCHK_Mask;
+extern ULONG Kd_DCOMSS_Mask;
+extern ULONG Kd_UNIMODEM_Mask;
+extern ULONG Kd_SIS_Mask;
+extern ULONG Kd_FLTMGR_Mask;
+extern ULONG Kd_WMICORE_Mask;
+extern ULONG Kd_BURNENG_Mask;
+extern ULONG Kd_IMAPI_Mask;
+extern ULONG Kd_SXS_Mask;
+extern ULONG Kd_FUSION_Mask;
+extern ULONG Kd_IDLETASK_Mask;
+extern ULONG Kd_SOFTPCI_Mask;
+extern ULONG Kd_TAPE_Mask;
+extern ULONG Kd_MCHGR_Mask;
+extern ULONG Kd_IDEP_Mask;
+extern ULONG Kd_PCIIDE_Mask;
+extern ULONG Kd_FLOPPY_Mask;
+extern ULONG Kd_FDC_Mask;
+extern ULONG Kd_TERMSRV_Mask;
+extern ULONG Kd_W32TIME_Mask;
+extern ULONG Kd_PREFETCHER_Mask;
+extern ULONG Kd_RSFILTER_Mask;
+extern ULONG Kd_FCPORT_Mask;
+extern ULONG Kd_PCI_Mask;
+extern ULONG Kd_DMIO_Mask;
+extern ULONG Kd_DMCONFIG_Mask;
+extern ULONG Kd_DMADMIN_Mask;
+extern ULONG Kd_WSOCKTRANSPORT_Mask;
+extern ULONG Kd_VSS_Mask;
+extern ULONG Kd_PNPMEM_Mask;
+extern ULONG Kd_PROCESSOR_Mask;
+extern ULONG Kd_DMSERVER_Mask;
+extern ULONG Kd_SR_Mask;
+extern ULONG Kd_INFINIBAND_Mask;
+extern ULONG Kd_IHVDRIVER_Mask;
+extern ULONG Kd_IHVVIDEO_Mask;
+extern ULONG Kd_IHVAUDIO_Mask;
+extern ULONG Kd_IHVNETWORK_Mask;
+extern ULONG Kd_IHVSTREAMING_Mask;
+extern ULONG Kd_IHVBUS_Mask;
+extern ULONG Kd_HPS_Mask;
+extern ULONG Kd_RTLTHREADPOOL_Mask;
+extern ULONG Kd_LDR_Mask;
+extern ULONG Kd_TCPIP6_Mask;
+extern ULONG Kd_ISAPNP_Mask;
+extern ULONG Kd_SHPC_Mask;
+extern ULONG Kd_STORPORT_Mask;
+extern ULONG Kd_STORMINIPORT_Mask;
+extern ULONG Kd_PRINTSPOOLER_Mask;
+extern ULONG Kd_VSSDYNDISK_Mask;
+extern ULONG Kd_VERIFIER_Mask;
+extern ULONG Kd_VDS_Mask;
+extern ULONG Kd_VDSBAS_Mask;
+extern ULONG Kd_VDSDYN_Mask;   // Specified in Vista+
+extern ULONG Kd_VDSDYNDR_Mask;
+extern ULONG Kd_VDSLDR_Mask;   // Specified in Vista+
+extern ULONG Kd_VDSUTIL_Mask;
+extern ULONG Kd_DFRGIFC_Mask;
+extern ULONG Kd_DEFAULT_Mask;
+extern ULONG Kd_MM_Mask;
+extern ULONG Kd_DFSC_Mask;
+extern ULONG Kd_WOW64_Mask;
+//
+// Components specified in Vista+, some of which we also use in ReactOS
+//
+extern ULONG Kd_ALPC_Mask;
+extern ULONG Kd_WDI_Mask;
+extern ULONG Kd_PERFLIB_Mask;
+extern ULONG Kd_KTM_Mask;
+extern ULONG Kd_IOSTRESS_Mask;
+extern ULONG Kd_HEAP_Mask;
+extern ULONG Kd_WHEA_Mask;
+extern ULONG Kd_USERGDI_Mask;
+extern ULONG Kd_MMCSS_Mask;
+extern ULONG Kd_TPM_Mask;
+extern ULONG Kd_THREADORDER_Mask;
+extern ULONG Kd_ENVIRON_Mask;
+extern ULONG Kd_EMS_Mask;
+extern ULONG Kd_WDT_Mask;
+extern ULONG Kd_FVEVOL_Mask;
+extern ULONG Kd_NDIS_Mask;
+extern ULONG Kd_NVCTRACE_Mask;
+extern ULONG Kd_LUAFV_Mask;
+extern ULONG Kd_APPCOMPAT_Mask;
+extern ULONG Kd_USBSTOR_Mask;
+extern ULONG Kd_SBP2PORT_Mask;
+extern ULONG Kd_COVERAGE_Mask;
+extern ULONG Kd_CACHEMGR_Mask;
+extern ULONG Kd_MOUNTMGR_Mask;
+extern ULONG Kd_CFR_Mask;
+extern ULONG Kd_TXF_Mask;
+extern ULONG Kd_KSECDD_Mask;
+extern ULONG Kd_FLTREGRESS_Mask;
+extern ULONG Kd_MPIO_Mask;
+extern ULONG Kd_MSDSM_Mask;
+extern ULONG Kd_UDFS_Mask;
+extern ULONG Kd_PSHED_Mask;
+extern ULONG Kd_STORVSP_Mask;
+extern ULONG Kd_LSASS_Mask;
+extern ULONG Kd_SSPICLI_Mask;
+extern ULONG Kd_CNG_Mask;
+extern ULONG Kd_EXFAT_Mask;
+extern ULONG Kd_FILETRACE_Mask;
+extern ULONG Kd_XSAVE_Mask;
+extern ULONG Kd_SE_Mask;
+extern ULONG Kd_DRIVEEXTENDER_Mask;
diff --git a/ntoskrnl/kd64/kdapi.c b/ntoskrnl/kd64/kdapi.c
index 3b6ba4ff9f6..1f0066d8ffe 100644
--- a/ntoskrnl/kd64/kdapi.c
+++ b/ntoskrnl/kd64/kdapi.c
@@ -2295,8 +2295,9 @@ KdRefreshDebuggerNotPresent(VOID)
  */
 NTSTATUS
 NTAPI
-NtQueryDebugFilterState(IN ULONG ComponentId,
-                        IN ULONG Level)
+NtQueryDebugFilterState(
+    _In_ ULONG ComponentId,
+    _In_ ULONG Level)
 {
     PULONG Mask;
 
@@ -2316,16 +2317,22 @@ NtQueryDebugFilterState(IN ULONG ComponentId,
     }
     else
     {
+#if (NTDDI_VERSION >= NTDDI_VISTA)
+        /* Use the default component ID */
+        Mask = &Kd_DEFAULT_Mask;
+        // Level = DPFLTR_INFO_LEVEL; // Override the Level.
+#else
         /* Invalid ID, fail */
         return STATUS_INVALID_PARAMETER_1;
+#endif
     }
 
-    /* Convert Level to bit field if necessary */
+    /* Convert Level to bit field if required */
     if (Level < 32) Level = 1 << Level;
+    Level &= ~DPFLTR_MASK;
 
     /* Determine if this Level is filtered out */
-    if ((Kd_WIN2000_Mask & Level) ||
-        (*Mask & Level))
+    if ((Kd_WIN2000_Mask & Level) || (*Mask & Level))
     {
         /* This mask will get through to the debugger */
         return (NTSTATUS)TRUE;
@@ -2342,15 +2349,15 @@ NtQueryDebugFilterState(IN ULONG ComponentId,
  */
 NTSTATUS
 NTAPI
-NtSetDebugFilterState(IN ULONG ComponentId,
-                      IN ULONG Level,
-                      IN BOOLEAN State)
+NtSetDebugFilterState(
+    _In_ ULONG ComponentId,
+    _In_ ULONG Level,
+    _In_ BOOLEAN State)
 {
     PULONG Mask;
 
     /* Modifying debug filters requires the debug privilege */
-    if (!SeSinglePrivilegeCheck(SeDebugPrivilege,
-                                ExGetPreviousMode()))
+    if (!SeSinglePrivilegeCheck(SeDebugPrivilege, ExGetPreviousMode()))
     {
         /* Fail */
         return STATUS_ACCESS_DENIED;
@@ -2372,25 +2379,24 @@ NtSetDebugFilterState(IN ULONG ComponentId,
     }
     else
     {
+#if (NTDDI_VERSION >= NTDDI_VISTA)
+        /* Use the default component ID */
+        Mask = &Kd_DEFAULT_Mask;
+#else
         /* Invalid ID, fail */
         return STATUS_INVALID_PARAMETER_1;
+#endif
     }
 
     /* Convert Level to bit field if required */
     if (Level < 32) Level = 1 << Level;
+    Level &= ~DPFLTR_MASK;
 
-    /* Check what kind of operation this is */
+    /* Set or remove the Level */
     if (State)
-    {
-        /* Set the Level */
         *Mask |= Level;
-    }
     else
-    {
-        /* Remove the Level */
         *Mask &= ~Level;
-    }
 
-    /* Success */
     return STATUS_SUCCESS;
 }
diff --git a/ntoskrnl/kd64/kddata.c b/ntoskrnl/kd64/kddata.c
index 681eb9bed9d..5576c405842 100644
--- a/ntoskrnl/kd64/kddata.c
+++ b/ntoskrnl/kd64/kddata.c
@@ -237,19 +237,66 @@ ULONG Kd_VSSDYNDISK_Mask;
 ULONG Kd_VERIFIER_Mask;
 ULONG Kd_VDS_Mask;
 ULONG Kd_VDSBAS_Mask;
+ULONG Kd_VDSDYN_Mask;   // Specified in Vista+
 ULONG Kd_VDSDYNDR_Mask;
+ULONG Kd_VDSLDR_Mask;   // Specified in Vista+
 ULONG Kd_VDSUTIL_Mask;
 ULONG Kd_DFRGIFC_Mask;
 ULONG Kd_DEFAULT_Mask;
 ULONG Kd_MM_Mask;
 ULONG Kd_DFSC_Mask;
 ULONG Kd_WOW64_Mask;
+//
+// Components specified in Vista+, some of which we also use in ReactOS
+//
+ULONG Kd_ALPC_Mask;
+ULONG Kd_WDI_Mask;
+ULONG Kd_PERFLIB_Mask;
+ULONG Kd_KTM_Mask;
+ULONG Kd_IOSTRESS_Mask;
+ULONG Kd_HEAP_Mask;
+ULONG Kd_WHEA_Mask;
+ULONG Kd_USERGDI_Mask;
+ULONG Kd_MMCSS_Mask;
+ULONG Kd_TPM_Mask;
+ULONG Kd_THREADORDER_Mask;
+ULONG Kd_ENVIRON_Mask;
+ULONG Kd_EMS_Mask;
+ULONG Kd_WDT_Mask;
+ULONG Kd_FVEVOL_Mask;
+ULONG Kd_NDIS_Mask;
+ULONG Kd_NVCTRACE_Mask;
+ULONG Kd_LUAFV_Mask;
+ULONG Kd_APPCOMPAT_Mask;
+ULONG Kd_USBSTOR_Mask;
+ULONG Kd_SBP2PORT_Mask;
+ULONG Kd_COVERAGE_Mask;
+ULONG Kd_CACHEMGR_Mask;
+ULONG Kd_MOUNTMGR_Mask;
+ULONG Kd_CFR_Mask;
+ULONG Kd_TXF_Mask;
+ULONG Kd_KSECDD_Mask;
+ULONG Kd_FLTREGRESS_Mask;
+ULONG Kd_MPIO_Mask;
+ULONG Kd_MSDSM_Mask;
+ULONG Kd_UDFS_Mask;
+ULONG Kd_PSHED_Mask;
+ULONG Kd_STORVSP_Mask;
+ULONG Kd_LSASS_Mask;
+ULONG Kd_SSPICLI_Mask;
+ULONG Kd_CNG_Mask;
+ULONG Kd_EXFAT_Mask;
+ULONG Kd_FILETRACE_Mask;
+ULONG Kd_XSAVE_Mask;
+ULONG Kd_SE_Mask;
+ULONG Kd_DRIVEEXTENDER_Mask;
+// End Mask
 ULONG Kd_ENDOFTABLE_Mask;
 
 //
 // Debug Filter Component Table
 //
-PULONG KdComponentTable[104] =
+PULONG KdComponentTable[MAX_KD_COMPONENT_TABLE_ENTRIES] =
 {
     &Kd_SYSTEM_Mask,
     &Kd_SMSS_Mask,
@@ -347,13 +394,61 @@ PULONG KdComponentTable[104] =
     &Kd_VERIFIER_Mask,
     &Kd_VDS_Mask,
     &Kd_VDSBAS_Mask,
+    &Kd_VDSDYN_Mask,    // Specified in Vista+
     &Kd_VDSDYNDR_Mask,
+    &Kd_VDSLDR_Mask,    // Specified in Vista+
     &Kd_VDSUTIL_Mask,
     &Kd_DFRGIFC_Mask,
     &Kd_DEFAULT_Mask,
     &Kd_MM_Mask,
     &Kd_DFSC_Mask,
     &Kd_WOW64_Mask,
+
+//
+// Components specified in Vista+, some of which we also use in ReactOS
+//
+    &Kd_ALPC_Mask,
+    &Kd_WDI_Mask,
+    &Kd_PERFLIB_Mask,
+    &Kd_KTM_Mask,
+    &Kd_IOSTRESS_Mask,
+    &Kd_HEAP_Mask,
+    &Kd_WHEA_Mask,
+    &Kd_USERGDI_Mask,
+    &Kd_MMCSS_Mask,
+    &Kd_TPM_Mask,
+    &Kd_THREADORDER_Mask,
+    &Kd_ENVIRON_Mask,
+    &Kd_EMS_Mask,
+    &Kd_WDT_Mask,
+    &Kd_FVEVOL_Mask,
+    &Kd_NDIS_Mask,
+    &Kd_NVCTRACE_Mask,
+    &Kd_LUAFV_Mask,
+    &Kd_APPCOMPAT_Mask,
+    &Kd_USBSTOR_Mask,
+    &Kd_SBP2PORT_Mask,
+    &Kd_COVERAGE_Mask,
+    &Kd_CACHEMGR_Mask,
+    &Kd_MOUNTMGR_Mask,
+    &Kd_CFR_Mask,
+    &Kd_TXF_Mask,
+    &Kd_KSECDD_Mask,
+    &Kd_FLTREGRESS_Mask,
+    &Kd_MPIO_Mask,
+    &Kd_MSDSM_Mask,
+    &Kd_UDFS_Mask,
+    &Kd_PSHED_Mask,
+    &Kd_STORVSP_Mask,
+    &Kd_LSASS_Mask,
+    &Kd_SSPICLI_Mask,
+    &Kd_CNG_Mask,
+    &Kd_EXFAT_Mask,
+    &Kd_FILETRACE_Mask,
+    &Kd_XSAVE_Mask,
+    &Kd_SE_Mask,
+    &Kd_DRIVEEXTENDER_Mask,
+    // End Mask
     &Kd_ENDOFTABLE_Mask,
 };
 
diff --git a/ntoskrnl/kd64/kdprint.c b/ntoskrnl/kd64/kdprint.c
index 7604a255ab4..8f721e80887 100644
--- a/ntoskrnl/kd64/kdprint.c
+++ b/ntoskrnl/kd64/kdprint.c
@@ -331,8 +331,19 @@ KdpPrint(IN ULONG ComponentId,
     /* Assume failure */
     *Handled = FALSE;
 
-    /* Validate the mask */
+#if (NTDDI_VERSION >= NTDDI_VISTA)
+    if ((ComponentId >= KdComponentTableSize) && (ComponentId < MAXULONG))
+    {
+        /* Use the default component ID */
+        Mask = &Kd_DEFAULT_Mask;
+        // Level = DPFLTR_INFO_LEVEL; // Override the Level.
+    }
+#endif
+    /* Convert Level to bit field if required */
     if (Level < 32) Level = 1 << Level;
+    Level &= ~DPFLTR_MASK;
+
+    /* Validate the mask */
     if (!(Kd_WIN2000_Mask & Level) ||
         ((ComponentId < KdComponentTableSize) &&
         !(*KdComponentTable[ComponentId] & Level)))
diff --git a/ntoskrnl/kdbg/kdb_cli.c b/ntoskrnl/kdbg/kdb_cli.c
index abf2e6d84aa..5e7d40d230f 100644
--- a/ntoskrnl/kdbg/kdb_cli.c
+++ b/ntoskrnl/kdbg/kdb_cli.c
@@ -222,7 +222,14 @@ KdbpGetComponentId(
     }
     ComponentTable[] =
     {
-        { "DEFAULT", MAXULONG },
+//
+// Default components
+//
+        { "WIN2000", MAXULONG },
+        { "DEFAULT", DPFLTR_DEFAULT_ID },
+//
+// Standard components
+//
         { "SYSTEM", DPFLTR_SYSTEM_ID },
         { "SMSS", DPFLTR_SMSS_ID },
         { "SETUP", DPFLTR_SETUP_ID },
@@ -327,6 +334,9 @@ KdbpGetComponentId(
         { "MM", DPFLTR_MM_ID },
         { "DFSC", DPFLTR_DFSC_ID },
         { "WOW64", DPFLTR_WOW64_ID },
+//
+// Components specified in Vista+, some of which we also use in ReactOS
+//
         { "ALPC", DPFLTR_ALPC_ID },
         { "WDI", DPFLTR_WDI_ID },
         { "PERFLIB", DPFLTR_PERFLIB_ID },
diff --git a/sdk/include/ndk/kdfuncs.h b/sdk/include/ndk/kdfuncs.h
index cd71e2b58cf..2d9278f8f80 100644
--- a/sdk/include/ndk/kdfuncs.h
+++ b/sdk/include/ndk/kdfuncs.h
@@ -57,17 +57,17 @@ NTSYSCALLAPI
 NTSTATUS
 NTAPI
 NtQueryDebugFilterState(
-     ULONG ComponentId,
-     ULONG Level
+    _In_ ULONG ComponentId,
+    _In_ ULONG Level
 );
 
 NTSYSCALLAPI
 NTSTATUS
 NTAPI
 NtSetDebugFilterState(
-    ULONG ComponentId,
-    ULONG Level,
-    BOOLEAN State
+    _In_ ULONG ComponentId,
+    _In_ ULONG Level,
+    _In_ BOOLEAN State
 );
 
 NTSYSCALLAPI

Reply via email to