https://git.reactos.org/?p=reactos.git;a=commitdiff;h=b6e33426bf9e1a997f3b708d81d86efe96f507ea
commit b6e33426bf9e1a997f3b708d81d86efe96f507ea Author: Victor Perevertkin <victor.perevert...@reactos.org> AuthorDate: Thu Dec 19 21:01:30 2019 +0300 Commit: Victor Perevertkin <vic...@perevertkin.ru> CommitDate: Mon Dec 30 05:57:49 2019 +0200 [NTOS:KD] Fix wrong debug level checking logic in KdpPrint. Use NtQueryDebugFilterState in that function for consistency. Thanks Hermès Bélusca-Maïto for help --- ntoskrnl/kd64/kdprint.c | 23 ++++------------------- 1 file changed, 4 insertions(+), 19 deletions(-) diff --git a/ntoskrnl/kd64/kdprint.c b/ntoskrnl/kd64/kdprint.c index 4d35bf6df76..81da68b7ec1 100644 --- a/ntoskrnl/kd64/kdprint.c +++ b/ntoskrnl/kd64/kdprint.c @@ -343,31 +343,16 @@ KdpPrint( STRING OutputString; CHAR CapturedString[512]; - /* Assume failure */ - *Handled = FALSE; - -#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))) + if (NtQueryDebugFilterState(ComponentId, Level) == (NTSTATUS)FALSE) { /* Mask validation failed */ *Handled = TRUE; return STATUS_SUCCESS; } + /* Assume failure */ + *Handled = FALSE; + /* Normalize the length */ Length = min(Length, sizeof(CapturedString));