From 0622cd4cfc007c0c40152ddd2a2a75419baa6dc4 Mon Sep 17 00:00:00 2001 From: Victor Perevertkin Date: Thu, 19 Dec 2019 21:01:30 +0300 Subject: [PATCH] =?UTF-8?q?[NTOS:KD]=20Fix=20wrong=20debug=20level=20check?= =?UTF-8?q?ing=20logic=20in=20KdpPrint.=20Use=20NtQueryDebugFilterState=20?= =?UTF-8?q?in=20that=20function=20for=20consistency.=20Thanks=20Herm=C3=A8?= =?UTF-8?q?s=20B=C3=A9lusca-Ma=C3=AFto=20for=20help?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 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 4d35bf6df7685..81da68b7ec186 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));