From: Victor Perevertkin Date: Thu, 19 Dec 2019 18:01:30 +0000 (+0300) Subject: [NTOS:KD] Fix wrong debug level checking logic in KdpPrint. X-Git-Tag: 0.4.14-RC~852 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=b6e33426bf9e1a997f3b708d81d86efe96f507ea [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 --- 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));