https://git.reactos.org/?p=reactos.git;a=commitdiff;h=6c1aac6948626bc7b90468...
commit 6c1aac6948626bc7b9046895bdd640b0c0cd1ec1 Author: Hermès Bélusca-Maïto hermes.belusca-maito@reactos.org AuthorDate: Sun Nov 17 17:16:55 2019 +0100 Commit: Hermès Bélusca-Maïto hermes.belusca-maito@reactos.org 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