mirror of
https://github.com/reactos/reactos.git
synced 2025-02-22 16:36:33 +00:00
[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.
This commit is contained in:
parent
9537653ee7
commit
6c1aac6948
7 changed files with 1341 additions and 113 deletions
File diff suppressed because it is too large
Load diff
|
@ -546,9 +546,7 @@ extern BOOLEAN KdpControlCPressed;
|
||||||
extern BOOLEAN KdpContextSent;
|
extern BOOLEAN KdpContextSent;
|
||||||
extern KSPIN_LOCK KdpDebuggerLock;
|
extern KSPIN_LOCK KdpDebuggerLock;
|
||||||
extern LARGE_INTEGER KdTimerStop, KdTimerStart, KdTimerDifference;
|
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 KdpMessageBuffer[0x1000], KdpPathBuffer[0x1000];
|
||||||
extern CHAR KdPrintDefaultCircularBuffer[KD_DEFAULT_LOG_BUFFER_SIZE];
|
extern CHAR KdPrintDefaultCircularBuffer[KD_DEFAULT_LOG_BUFFER_SIZE];
|
||||||
extern BREAKPOINT_ENTRY KdpBreakpointTable[KD_BREAKPOINT_MAX];
|
extern BREAKPOINT_ENTRY KdpBreakpointTable[KD_BREAKPOINT_MAX];
|
||||||
|
@ -559,3 +557,164 @@ extern ULONG KdpNumInternalBreakpoints;
|
||||||
extern ULONG_PTR KdpCurrentSymbolStart, KdpCurrentSymbolEnd;
|
extern ULONG_PTR KdpCurrentSymbolStart, KdpCurrentSymbolEnd;
|
||||||
extern ULONG TraceDataBuffer[40];
|
extern ULONG TraceDataBuffer[40];
|
||||||
extern ULONG TraceDataBufferPosition;
|
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;
|
||||||
|
|
|
@ -2295,8 +2295,9 @@ KdRefreshDebuggerNotPresent(VOID)
|
||||||
*/
|
*/
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
NtQueryDebugFilterState(IN ULONG ComponentId,
|
NtQueryDebugFilterState(
|
||||||
IN ULONG Level)
|
_In_ ULONG ComponentId,
|
||||||
|
_In_ ULONG Level)
|
||||||
{
|
{
|
||||||
PULONG Mask;
|
PULONG Mask;
|
||||||
|
|
||||||
|
@ -2316,16 +2317,22 @@ NtQueryDebugFilterState(IN ULONG ComponentId,
|
||||||
}
|
}
|
||||||
else
|
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 */
|
/* Invalid ID, fail */
|
||||||
return STATUS_INVALID_PARAMETER_1;
|
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;
|
if (Level < 32) Level = 1 << Level;
|
||||||
|
Level &= ~DPFLTR_MASK;
|
||||||
|
|
||||||
/* Determine if this Level is filtered out */
|
/* Determine if this Level is filtered out */
|
||||||
if ((Kd_WIN2000_Mask & Level) ||
|
if ((Kd_WIN2000_Mask & Level) || (*Mask & Level))
|
||||||
(*Mask & Level))
|
|
||||||
{
|
{
|
||||||
/* This mask will get through to the debugger */
|
/* This mask will get through to the debugger */
|
||||||
return (NTSTATUS)TRUE;
|
return (NTSTATUS)TRUE;
|
||||||
|
@ -2342,15 +2349,15 @@ NtQueryDebugFilterState(IN ULONG ComponentId,
|
||||||
*/
|
*/
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
NtSetDebugFilterState(IN ULONG ComponentId,
|
NtSetDebugFilterState(
|
||||||
IN ULONG Level,
|
_In_ ULONG ComponentId,
|
||||||
IN BOOLEAN State)
|
_In_ ULONG Level,
|
||||||
|
_In_ BOOLEAN State)
|
||||||
{
|
{
|
||||||
PULONG Mask;
|
PULONG Mask;
|
||||||
|
|
||||||
/* Modifying debug filters requires the debug privilege */
|
/* Modifying debug filters requires the debug privilege */
|
||||||
if (!SeSinglePrivilegeCheck(SeDebugPrivilege,
|
if (!SeSinglePrivilegeCheck(SeDebugPrivilege, ExGetPreviousMode()))
|
||||||
ExGetPreviousMode()))
|
|
||||||
{
|
{
|
||||||
/* Fail */
|
/* Fail */
|
||||||
return STATUS_ACCESS_DENIED;
|
return STATUS_ACCESS_DENIED;
|
||||||
|
@ -2372,25 +2379,24 @@ NtSetDebugFilterState(IN ULONG ComponentId,
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
#if (NTDDI_VERSION >= NTDDI_VISTA)
|
||||||
|
/* Use the default component ID */
|
||||||
|
Mask = &Kd_DEFAULT_Mask;
|
||||||
|
#else
|
||||||
/* Invalid ID, fail */
|
/* Invalid ID, fail */
|
||||||
return STATUS_INVALID_PARAMETER_1;
|
return STATUS_INVALID_PARAMETER_1;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Convert Level to bit field if required */
|
/* Convert Level to bit field if required */
|
||||||
if (Level < 32) Level = 1 << Level;
|
if (Level < 32) Level = 1 << Level;
|
||||||
|
Level &= ~DPFLTR_MASK;
|
||||||
|
|
||||||
/* Check what kind of operation this is */
|
/* Set or remove the Level */
|
||||||
if (State)
|
if (State)
|
||||||
{
|
|
||||||
/* Set the Level */
|
|
||||||
*Mask |= Level;
|
*Mask |= Level;
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
|
||||||
/* Remove the Level */
|
|
||||||
*Mask &= ~Level;
|
*Mask &= ~Level;
|
||||||
}
|
|
||||||
|
|
||||||
/* Success */
|
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
|
@ -237,19 +237,66 @@ ULONG Kd_VSSDYNDISK_Mask;
|
||||||
ULONG Kd_VERIFIER_Mask;
|
ULONG Kd_VERIFIER_Mask;
|
||||||
ULONG Kd_VDS_Mask;
|
ULONG Kd_VDS_Mask;
|
||||||
ULONG Kd_VDSBAS_Mask;
|
ULONG Kd_VDSBAS_Mask;
|
||||||
|
ULONG Kd_VDSDYN_Mask; // Specified in Vista+
|
||||||
ULONG Kd_VDSDYNDR_Mask;
|
ULONG Kd_VDSDYNDR_Mask;
|
||||||
|
ULONG Kd_VDSLDR_Mask; // Specified in Vista+
|
||||||
ULONG Kd_VDSUTIL_Mask;
|
ULONG Kd_VDSUTIL_Mask;
|
||||||
ULONG Kd_DFRGIFC_Mask;
|
ULONG Kd_DFRGIFC_Mask;
|
||||||
ULONG Kd_DEFAULT_Mask;
|
ULONG Kd_DEFAULT_Mask;
|
||||||
ULONG Kd_MM_Mask;
|
ULONG Kd_MM_Mask;
|
||||||
ULONG Kd_DFSC_Mask;
|
ULONG Kd_DFSC_Mask;
|
||||||
ULONG Kd_WOW64_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;
|
ULONG Kd_ENDOFTABLE_Mask;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Debug Filter Component Table
|
// Debug Filter Component Table
|
||||||
//
|
//
|
||||||
PULONG KdComponentTable[104] =
|
PULONG KdComponentTable[MAX_KD_COMPONENT_TABLE_ENTRIES] =
|
||||||
{
|
{
|
||||||
&Kd_SYSTEM_Mask,
|
&Kd_SYSTEM_Mask,
|
||||||
&Kd_SMSS_Mask,
|
&Kd_SMSS_Mask,
|
||||||
|
@ -347,13 +394,61 @@ PULONG KdComponentTable[104] =
|
||||||
&Kd_VERIFIER_Mask,
|
&Kd_VERIFIER_Mask,
|
||||||
&Kd_VDS_Mask,
|
&Kd_VDS_Mask,
|
||||||
&Kd_VDSBAS_Mask,
|
&Kd_VDSBAS_Mask,
|
||||||
|
&Kd_VDSDYN_Mask, // Specified in Vista+
|
||||||
&Kd_VDSDYNDR_Mask,
|
&Kd_VDSDYNDR_Mask,
|
||||||
|
&Kd_VDSLDR_Mask, // Specified in Vista+
|
||||||
&Kd_VDSUTIL_Mask,
|
&Kd_VDSUTIL_Mask,
|
||||||
&Kd_DFRGIFC_Mask,
|
&Kd_DFRGIFC_Mask,
|
||||||
&Kd_DEFAULT_Mask,
|
&Kd_DEFAULT_Mask,
|
||||||
&Kd_MM_Mask,
|
&Kd_MM_Mask,
|
||||||
&Kd_DFSC_Mask,
|
&Kd_DFSC_Mask,
|
||||||
&Kd_WOW64_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,
|
&Kd_ENDOFTABLE_Mask,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -331,8 +331,19 @@ KdpPrint(IN ULONG ComponentId,
|
||||||
/* Assume failure */
|
/* Assume failure */
|
||||||
*Handled = FALSE;
|
*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;
|
if (Level < 32) Level = 1 << Level;
|
||||||
|
Level &= ~DPFLTR_MASK;
|
||||||
|
|
||||||
|
/* Validate the mask */
|
||||||
if (!(Kd_WIN2000_Mask & Level) ||
|
if (!(Kd_WIN2000_Mask & Level) ||
|
||||||
((ComponentId < KdComponentTableSize) &&
|
((ComponentId < KdComponentTableSize) &&
|
||||||
!(*KdComponentTable[ComponentId] & Level)))
|
!(*KdComponentTable[ComponentId] & Level)))
|
||||||
|
|
|
@ -222,7 +222,14 @@ KdbpGetComponentId(
|
||||||
}
|
}
|
||||||
ComponentTable[] =
|
ComponentTable[] =
|
||||||
{
|
{
|
||||||
{ "DEFAULT", MAXULONG },
|
//
|
||||||
|
// Default components
|
||||||
|
//
|
||||||
|
{ "WIN2000", MAXULONG },
|
||||||
|
{ "DEFAULT", DPFLTR_DEFAULT_ID },
|
||||||
|
//
|
||||||
|
// Standard components
|
||||||
|
//
|
||||||
{ "SYSTEM", DPFLTR_SYSTEM_ID },
|
{ "SYSTEM", DPFLTR_SYSTEM_ID },
|
||||||
{ "SMSS", DPFLTR_SMSS_ID },
|
{ "SMSS", DPFLTR_SMSS_ID },
|
||||||
{ "SETUP", DPFLTR_SETUP_ID },
|
{ "SETUP", DPFLTR_SETUP_ID },
|
||||||
|
@ -327,6 +334,9 @@ KdbpGetComponentId(
|
||||||
{ "MM", DPFLTR_MM_ID },
|
{ "MM", DPFLTR_MM_ID },
|
||||||
{ "DFSC", DPFLTR_DFSC_ID },
|
{ "DFSC", DPFLTR_DFSC_ID },
|
||||||
{ "WOW64", DPFLTR_WOW64_ID },
|
{ "WOW64", DPFLTR_WOW64_ID },
|
||||||
|
//
|
||||||
|
// Components specified in Vista+, some of which we also use in ReactOS
|
||||||
|
//
|
||||||
{ "ALPC", DPFLTR_ALPC_ID },
|
{ "ALPC", DPFLTR_ALPC_ID },
|
||||||
{ "WDI", DPFLTR_WDI_ID },
|
{ "WDI", DPFLTR_WDI_ID },
|
||||||
{ "PERFLIB", DPFLTR_PERFLIB_ID },
|
{ "PERFLIB", DPFLTR_PERFLIB_ID },
|
||||||
|
|
|
@ -57,17 +57,17 @@ NTSYSCALLAPI
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
NtQueryDebugFilterState(
|
NtQueryDebugFilterState(
|
||||||
ULONG ComponentId,
|
_In_ ULONG ComponentId,
|
||||||
ULONG Level
|
_In_ ULONG Level
|
||||||
);
|
);
|
||||||
|
|
||||||
NTSYSCALLAPI
|
NTSYSCALLAPI
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
NtSetDebugFilterState(
|
NtSetDebugFilterState(
|
||||||
ULONG ComponentId,
|
_In_ ULONG ComponentId,
|
||||||
ULONG Level,
|
_In_ ULONG Level,
|
||||||
BOOLEAN State
|
_In_ BOOLEAN State
|
||||||
);
|
);
|
||||||
|
|
||||||
NTSYSCALLAPI
|
NTSYSCALLAPI
|
||||||
|
|
Loading…
Reference in a new issue