mirror of
https://github.com/reactos/reactos.git
synced 2025-08-06 06:02:56 +00:00
[KDBG] If no parameters are given to the 'filter' command, display the list of available debug filter components.
This commit is contained in:
parent
548393c6e7
commit
40c57de728
1 changed files with 226 additions and 202 deletions
|
@ -135,6 +135,177 @@ extern volatile ULONG KdbDmesgTotalWritten;
|
||||||
|
|
||||||
STRING KdbPromptString = RTL_CONSTANT_STRING("kdb:> ");
|
STRING KdbPromptString = RTL_CONSTANT_STRING("kdb:> ");
|
||||||
|
|
||||||
|
//
|
||||||
|
// Debug Filter Component Table
|
||||||
|
//
|
||||||
|
static struct
|
||||||
|
{
|
||||||
|
PCSTR Name;
|
||||||
|
ULONG Id;
|
||||||
|
}
|
||||||
|
ComponentTable[] =
|
||||||
|
{
|
||||||
|
//
|
||||||
|
// Default components
|
||||||
|
//
|
||||||
|
{ "WIN2000", MAXULONG },
|
||||||
|
{ "DEFAULT", DPFLTR_DEFAULT_ID },
|
||||||
|
//
|
||||||
|
// Standard components
|
||||||
|
//
|
||||||
|
{ "SYSTEM", DPFLTR_SYSTEM_ID },
|
||||||
|
{ "SMSS", DPFLTR_SMSS_ID },
|
||||||
|
{ "SETUP", DPFLTR_SETUP_ID },
|
||||||
|
{ "NTFS", DPFLTR_NTFS_ID },
|
||||||
|
{ "FSTUB", DPFLTR_FSTUB_ID },
|
||||||
|
{ "CRASHDUMP", DPFLTR_CRASHDUMP_ID },
|
||||||
|
{ "CDAUDIO", DPFLTR_CDAUDIO_ID },
|
||||||
|
{ "CDROM", DPFLTR_CDROM_ID },
|
||||||
|
{ "CLASSPNP", DPFLTR_CLASSPNP_ID },
|
||||||
|
{ "DISK", DPFLTR_DISK_ID },
|
||||||
|
{ "REDBOOK", DPFLTR_REDBOOK_ID },
|
||||||
|
{ "STORPROP", DPFLTR_STORPROP_ID },
|
||||||
|
{ "SCSIPORT", DPFLTR_SCSIPORT_ID },
|
||||||
|
{ "SCSIMINIPORT", DPFLTR_SCSIMINIPORT_ID },
|
||||||
|
{ "CONFIG", DPFLTR_CONFIG_ID },
|
||||||
|
{ "I8042PRT", DPFLTR_I8042PRT_ID },
|
||||||
|
{ "SERMOUSE", DPFLTR_SERMOUSE_ID },
|
||||||
|
{ "LSERMOUS", DPFLTR_LSERMOUS_ID },
|
||||||
|
{ "KBDHID", DPFLTR_KBDHID_ID },
|
||||||
|
{ "MOUHID", DPFLTR_MOUHID_ID },
|
||||||
|
{ "KBDCLASS", DPFLTR_KBDCLASS_ID },
|
||||||
|
{ "MOUCLASS", DPFLTR_MOUCLASS_ID },
|
||||||
|
{ "TWOTRACK", DPFLTR_TWOTRACK_ID },
|
||||||
|
{ "WMILIB", DPFLTR_WMILIB_ID },
|
||||||
|
{ "ACPI", DPFLTR_ACPI_ID },
|
||||||
|
{ "AMLI", DPFLTR_AMLI_ID },
|
||||||
|
{ "HALIA64", DPFLTR_HALIA64_ID },
|
||||||
|
{ "VIDEO", DPFLTR_VIDEO_ID },
|
||||||
|
{ "SVCHOST", DPFLTR_SVCHOST_ID },
|
||||||
|
{ "VIDEOPRT", DPFLTR_VIDEOPRT_ID },
|
||||||
|
{ "TCPIP", DPFLTR_TCPIP_ID },
|
||||||
|
{ "DMSYNTH", DPFLTR_DMSYNTH_ID },
|
||||||
|
{ "NTOSPNP", DPFLTR_NTOSPNP_ID },
|
||||||
|
{ "FASTFAT", DPFLTR_FASTFAT_ID },
|
||||||
|
{ "SAMSS", DPFLTR_SAMSS_ID },
|
||||||
|
{ "PNPMGR", DPFLTR_PNPMGR_ID },
|
||||||
|
{ "NETAPI", DPFLTR_NETAPI_ID },
|
||||||
|
{ "SCSERVER", DPFLTR_SCSERVER_ID },
|
||||||
|
{ "SCCLIENT", DPFLTR_SCCLIENT_ID },
|
||||||
|
{ "SERIAL", DPFLTR_SERIAL_ID },
|
||||||
|
{ "SERENUM", DPFLTR_SERENUM_ID },
|
||||||
|
{ "UHCD", DPFLTR_UHCD_ID },
|
||||||
|
{ "RPCPROXY", DPFLTR_RPCPROXY_ID },
|
||||||
|
{ "AUTOCHK", DPFLTR_AUTOCHK_ID },
|
||||||
|
{ "DCOMSS", DPFLTR_DCOMSS_ID },
|
||||||
|
{ "UNIMODEM", DPFLTR_UNIMODEM_ID },
|
||||||
|
{ "SIS", DPFLTR_SIS_ID },
|
||||||
|
{ "FLTMGR", DPFLTR_FLTMGR_ID },
|
||||||
|
{ "WMICORE", DPFLTR_WMICORE_ID },
|
||||||
|
{ "BURNENG", DPFLTR_BURNENG_ID },
|
||||||
|
{ "IMAPI", DPFLTR_IMAPI_ID },
|
||||||
|
{ "SXS", DPFLTR_SXS_ID },
|
||||||
|
{ "FUSION", DPFLTR_FUSION_ID },
|
||||||
|
{ "IDLETASK", DPFLTR_IDLETASK_ID },
|
||||||
|
{ "SOFTPCI", DPFLTR_SOFTPCI_ID },
|
||||||
|
{ "TAPE", DPFLTR_TAPE_ID },
|
||||||
|
{ "MCHGR", DPFLTR_MCHGR_ID },
|
||||||
|
{ "IDEP", DPFLTR_IDEP_ID },
|
||||||
|
{ "PCIIDE", DPFLTR_PCIIDE_ID },
|
||||||
|
{ "FLOPPY", DPFLTR_FLOPPY_ID },
|
||||||
|
{ "FDC", DPFLTR_FDC_ID },
|
||||||
|
{ "TERMSRV", DPFLTR_TERMSRV_ID },
|
||||||
|
{ "W32TIME", DPFLTR_W32TIME_ID },
|
||||||
|
{ "PREFETCHER", DPFLTR_PREFETCHER_ID },
|
||||||
|
{ "RSFILTER", DPFLTR_RSFILTER_ID },
|
||||||
|
{ "FCPORT", DPFLTR_FCPORT_ID },
|
||||||
|
{ "PCI", DPFLTR_PCI_ID },
|
||||||
|
{ "DMIO", DPFLTR_DMIO_ID },
|
||||||
|
{ "DMCONFIG", DPFLTR_DMCONFIG_ID },
|
||||||
|
{ "DMADMIN", DPFLTR_DMADMIN_ID },
|
||||||
|
{ "WSOCKTRANSPORT", DPFLTR_WSOCKTRANSPORT_ID },
|
||||||
|
{ "VSS", DPFLTR_VSS_ID },
|
||||||
|
{ "PNPMEM", DPFLTR_PNPMEM_ID },
|
||||||
|
{ "PROCESSOR", DPFLTR_PROCESSOR_ID },
|
||||||
|
{ "DMSERVER", DPFLTR_DMSERVER_ID },
|
||||||
|
{ "SR", DPFLTR_SR_ID },
|
||||||
|
{ "INFINIBAND", DPFLTR_INFINIBAND_ID },
|
||||||
|
{ "IHVDRIVER", DPFLTR_IHVDRIVER_ID },
|
||||||
|
{ "IHVVIDEO", DPFLTR_IHVVIDEO_ID },
|
||||||
|
{ "IHVAUDIO", DPFLTR_IHVAUDIO_ID },
|
||||||
|
{ "IHVNETWORK", DPFLTR_IHVNETWORK_ID },
|
||||||
|
{ "IHVSTREAMING", DPFLTR_IHVSTREAMING_ID },
|
||||||
|
{ "IHVBUS", DPFLTR_IHVBUS_ID },
|
||||||
|
{ "HPS", DPFLTR_HPS_ID },
|
||||||
|
{ "RTLTHREADPOOL", DPFLTR_RTLTHREADPOOL_ID },
|
||||||
|
{ "LDR", DPFLTR_LDR_ID },
|
||||||
|
{ "TCPIP6", DPFLTR_TCPIP6_ID },
|
||||||
|
{ "ISAPNP", DPFLTR_ISAPNP_ID },
|
||||||
|
{ "SHPC", DPFLTR_SHPC_ID },
|
||||||
|
{ "STORPORT", DPFLTR_STORPORT_ID },
|
||||||
|
{ "STORMINIPORT", DPFLTR_STORMINIPORT_ID },
|
||||||
|
{ "PRINTSPOOLER", DPFLTR_PRINTSPOOLER_ID },
|
||||||
|
{ "VSSDYNDISK", DPFLTR_VSSDYNDISK_ID },
|
||||||
|
{ "VERIFIER", DPFLTR_VERIFIER_ID },
|
||||||
|
{ "VDS", DPFLTR_VDS_ID },
|
||||||
|
{ "VDSBAS", DPFLTR_VDSBAS_ID },
|
||||||
|
{ "VDSDYN", DPFLTR_VDSDYN_ID }, // Specified in Vista+
|
||||||
|
{ "VDSDYNDR", DPFLTR_VDSDYNDR_ID },
|
||||||
|
{ "VDSLDR", DPFLTR_VDSLDR_ID }, // Specified in Vista+
|
||||||
|
{ "VDSUTIL", DPFLTR_VDSUTIL_ID },
|
||||||
|
{ "DFRGIFC", DPFLTR_DFRGIFC_ID },
|
||||||
|
{ "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 },
|
||||||
|
{ "KTM", DPFLTR_KTM_ID },
|
||||||
|
{ "IOSTRESS", DPFLTR_IOSTRESS_ID },
|
||||||
|
{ "HEAP", DPFLTR_HEAP_ID },
|
||||||
|
{ "WHEA", DPFLTR_WHEA_ID },
|
||||||
|
{ "USERGDI", DPFLTR_USERGDI_ID },
|
||||||
|
{ "MMCSS", DPFLTR_MMCSS_ID },
|
||||||
|
{ "TPM", DPFLTR_TPM_ID },
|
||||||
|
{ "THREADORDER", DPFLTR_THREADORDER_ID },
|
||||||
|
{ "ENVIRON", DPFLTR_ENVIRON_ID },
|
||||||
|
{ "EMS", DPFLTR_EMS_ID },
|
||||||
|
{ "WDT", DPFLTR_WDT_ID },
|
||||||
|
{ "FVEVOL", DPFLTR_FVEVOL_ID },
|
||||||
|
{ "NDIS", DPFLTR_NDIS_ID },
|
||||||
|
{ "NVCTRACE", DPFLTR_NVCTRACE_ID },
|
||||||
|
{ "LUAFV", DPFLTR_LUAFV_ID },
|
||||||
|
{ "APPCOMPAT", DPFLTR_APPCOMPAT_ID },
|
||||||
|
{ "USBSTOR", DPFLTR_USBSTOR_ID },
|
||||||
|
{ "SBP2PORT", DPFLTR_SBP2PORT_ID },
|
||||||
|
{ "COVERAGE", DPFLTR_COVERAGE_ID },
|
||||||
|
{ "CACHEMGR", DPFLTR_CACHEMGR_ID },
|
||||||
|
{ "MOUNTMGR", DPFLTR_MOUNTMGR_ID },
|
||||||
|
{ "CFR", DPFLTR_CFR_ID },
|
||||||
|
{ "TXF", DPFLTR_TXF_ID },
|
||||||
|
{ "KSECDD", DPFLTR_KSECDD_ID },
|
||||||
|
{ "FLTREGRESS", DPFLTR_FLTREGRESS_ID },
|
||||||
|
{ "MPIO", DPFLTR_MPIO_ID },
|
||||||
|
{ "MSDSM", DPFLTR_MSDSM_ID },
|
||||||
|
{ "UDFS", DPFLTR_UDFS_ID },
|
||||||
|
{ "PSHED", DPFLTR_PSHED_ID },
|
||||||
|
{ "STORVSP", DPFLTR_STORVSP_ID },
|
||||||
|
{ "LSASS", DPFLTR_LSASS_ID },
|
||||||
|
{ "SSPICLI", DPFLTR_SSPICLI_ID },
|
||||||
|
{ "CNG", DPFLTR_CNG_ID },
|
||||||
|
{ "EXFAT", DPFLTR_EXFAT_ID },
|
||||||
|
{ "FILETRACE", DPFLTR_FILETRACE_ID },
|
||||||
|
{ "XSAVE", DPFLTR_XSAVE_ID },
|
||||||
|
{ "SE", DPFLTR_SE_ID },
|
||||||
|
{ "DRIVEEXTENDER", DPFLTR_DRIVEEXTENDER_ID },
|
||||||
|
};
|
||||||
|
|
||||||
|
//
|
||||||
|
// Command Table
|
||||||
|
//
|
||||||
static const struct
|
static const struct
|
||||||
{
|
{
|
||||||
PCHAR Name;
|
PCHAR Name;
|
||||||
|
@ -202,198 +373,6 @@ static const struct
|
||||||
|
|
||||||
/* FUNCTIONS *****************************************************************/
|
/* FUNCTIONS *****************************************************************/
|
||||||
|
|
||||||
/*!\brief Transform a component name to an integer
|
|
||||||
*
|
|
||||||
* \param ComponentName The name of the component.
|
|
||||||
* \param ComponentId Receives the component id on success.
|
|
||||||
*
|
|
||||||
* \retval TRUE Success.
|
|
||||||
* \retval FALSE Failure.
|
|
||||||
*/
|
|
||||||
static BOOLEAN
|
|
||||||
KdbpGetComponentId(
|
|
||||||
IN PCCH ComponentName,
|
|
||||||
OUT PULONG ComponentId)
|
|
||||||
{
|
|
||||||
ULONG i;
|
|
||||||
|
|
||||||
static struct
|
|
||||||
{
|
|
||||||
PCCH Name;
|
|
||||||
ULONG Id;
|
|
||||||
}
|
|
||||||
ComponentTable[] =
|
|
||||||
{
|
|
||||||
//
|
|
||||||
// Default components
|
|
||||||
//
|
|
||||||
{ "WIN2000", MAXULONG },
|
|
||||||
{ "DEFAULT", DPFLTR_DEFAULT_ID },
|
|
||||||
//
|
|
||||||
// Standard components
|
|
||||||
//
|
|
||||||
{ "SYSTEM", DPFLTR_SYSTEM_ID },
|
|
||||||
{ "SMSS", DPFLTR_SMSS_ID },
|
|
||||||
{ "SETUP", DPFLTR_SETUP_ID },
|
|
||||||
{ "NTFS", DPFLTR_NTFS_ID },
|
|
||||||
{ "FSTUB", DPFLTR_FSTUB_ID },
|
|
||||||
{ "CRASHDUMP", DPFLTR_CRASHDUMP_ID },
|
|
||||||
{ "CDAUDIO", DPFLTR_CDAUDIO_ID },
|
|
||||||
{ "CDROM", DPFLTR_CDROM_ID },
|
|
||||||
{ "CLASSPNP", DPFLTR_CLASSPNP_ID },
|
|
||||||
{ "DISK", DPFLTR_DISK_ID },
|
|
||||||
{ "REDBOOK", DPFLTR_REDBOOK_ID },
|
|
||||||
{ "STORPROP", DPFLTR_STORPROP_ID },
|
|
||||||
{ "SCSIPORT", DPFLTR_SCSIPORT_ID },
|
|
||||||
{ "SCSIMINIPORT", DPFLTR_SCSIMINIPORT_ID },
|
|
||||||
{ "CONFIG", DPFLTR_CONFIG_ID },
|
|
||||||
{ "I8042PRT", DPFLTR_I8042PRT_ID },
|
|
||||||
{ "SERMOUSE", DPFLTR_SERMOUSE_ID },
|
|
||||||
{ "LSERMOUS", DPFLTR_LSERMOUS_ID },
|
|
||||||
{ "KBDHID", DPFLTR_KBDHID_ID },
|
|
||||||
{ "MOUHID", DPFLTR_MOUHID_ID },
|
|
||||||
{ "KBDCLASS", DPFLTR_KBDCLASS_ID },
|
|
||||||
{ "MOUCLASS", DPFLTR_MOUCLASS_ID },
|
|
||||||
{ "TWOTRACK", DPFLTR_TWOTRACK_ID },
|
|
||||||
{ "WMILIB", DPFLTR_WMILIB_ID },
|
|
||||||
{ "ACPI", DPFLTR_ACPI_ID },
|
|
||||||
{ "AMLI", DPFLTR_AMLI_ID },
|
|
||||||
{ "HALIA64", DPFLTR_HALIA64_ID },
|
|
||||||
{ "VIDEO", DPFLTR_VIDEO_ID },
|
|
||||||
{ "SVCHOST", DPFLTR_SVCHOST_ID },
|
|
||||||
{ "VIDEOPRT", DPFLTR_VIDEOPRT_ID },
|
|
||||||
{ "TCPIP", DPFLTR_TCPIP_ID },
|
|
||||||
{ "DMSYNTH", DPFLTR_DMSYNTH_ID },
|
|
||||||
{ "NTOSPNP", DPFLTR_NTOSPNP_ID },
|
|
||||||
{ "FASTFAT", DPFLTR_FASTFAT_ID },
|
|
||||||
{ "SAMSS", DPFLTR_SAMSS_ID },
|
|
||||||
{ "PNPMGR", DPFLTR_PNPMGR_ID },
|
|
||||||
{ "NETAPI", DPFLTR_NETAPI_ID },
|
|
||||||
{ "SCSERVER", DPFLTR_SCSERVER_ID },
|
|
||||||
{ "SCCLIENT", DPFLTR_SCCLIENT_ID },
|
|
||||||
{ "SERIAL", DPFLTR_SERIAL_ID },
|
|
||||||
{ "SERENUM", DPFLTR_SERENUM_ID },
|
|
||||||
{ "UHCD", DPFLTR_UHCD_ID },
|
|
||||||
{ "RPCPROXY", DPFLTR_RPCPROXY_ID },
|
|
||||||
{ "AUTOCHK", DPFLTR_AUTOCHK_ID },
|
|
||||||
{ "DCOMSS", DPFLTR_DCOMSS_ID },
|
|
||||||
{ "UNIMODEM", DPFLTR_UNIMODEM_ID },
|
|
||||||
{ "SIS", DPFLTR_SIS_ID },
|
|
||||||
{ "FLTMGR", DPFLTR_FLTMGR_ID },
|
|
||||||
{ "WMICORE", DPFLTR_WMICORE_ID },
|
|
||||||
{ "BURNENG", DPFLTR_BURNENG_ID },
|
|
||||||
{ "IMAPI", DPFLTR_IMAPI_ID },
|
|
||||||
{ "SXS", DPFLTR_SXS_ID },
|
|
||||||
{ "FUSION", DPFLTR_FUSION_ID },
|
|
||||||
{ "IDLETASK", DPFLTR_IDLETASK_ID },
|
|
||||||
{ "SOFTPCI", DPFLTR_SOFTPCI_ID },
|
|
||||||
{ "TAPE", DPFLTR_TAPE_ID },
|
|
||||||
{ "MCHGR", DPFLTR_MCHGR_ID },
|
|
||||||
{ "IDEP", DPFLTR_IDEP_ID },
|
|
||||||
{ "PCIIDE", DPFLTR_PCIIDE_ID },
|
|
||||||
{ "FLOPPY", DPFLTR_FLOPPY_ID },
|
|
||||||
{ "FDC", DPFLTR_FDC_ID },
|
|
||||||
{ "TERMSRV", DPFLTR_TERMSRV_ID },
|
|
||||||
{ "W32TIME", DPFLTR_W32TIME_ID },
|
|
||||||
{ "PREFETCHER", DPFLTR_PREFETCHER_ID },
|
|
||||||
{ "RSFILTER", DPFLTR_RSFILTER_ID },
|
|
||||||
{ "FCPORT", DPFLTR_FCPORT_ID },
|
|
||||||
{ "PCI", DPFLTR_PCI_ID },
|
|
||||||
{ "DMIO", DPFLTR_DMIO_ID },
|
|
||||||
{ "DMCONFIG", DPFLTR_DMCONFIG_ID },
|
|
||||||
{ "DMADMIN", DPFLTR_DMADMIN_ID },
|
|
||||||
{ "WSOCKTRANSPORT", DPFLTR_WSOCKTRANSPORT_ID },
|
|
||||||
{ "VSS", DPFLTR_VSS_ID },
|
|
||||||
{ "PNPMEM", DPFLTR_PNPMEM_ID },
|
|
||||||
{ "PROCESSOR", DPFLTR_PROCESSOR_ID },
|
|
||||||
{ "DMSERVER", DPFLTR_DMSERVER_ID },
|
|
||||||
{ "SR", DPFLTR_SR_ID },
|
|
||||||
{ "INFINIBAND", DPFLTR_INFINIBAND_ID },
|
|
||||||
{ "IHVDRIVER", DPFLTR_IHVDRIVER_ID },
|
|
||||||
{ "IHVVIDEO", DPFLTR_IHVVIDEO_ID },
|
|
||||||
{ "IHVAUDIO", DPFLTR_IHVAUDIO_ID },
|
|
||||||
{ "IHVNETWORK", DPFLTR_IHVNETWORK_ID },
|
|
||||||
{ "IHVSTREAMING", DPFLTR_IHVSTREAMING_ID },
|
|
||||||
{ "IHVBUS", DPFLTR_IHVBUS_ID },
|
|
||||||
{ "HPS", DPFLTR_HPS_ID },
|
|
||||||
{ "RTLTHREADPOOL", DPFLTR_RTLTHREADPOOL_ID },
|
|
||||||
{ "LDR", DPFLTR_LDR_ID },
|
|
||||||
{ "TCPIP6", DPFLTR_TCPIP6_ID },
|
|
||||||
{ "ISAPNP", DPFLTR_ISAPNP_ID },
|
|
||||||
{ "SHPC", DPFLTR_SHPC_ID },
|
|
||||||
{ "STORPORT", DPFLTR_STORPORT_ID },
|
|
||||||
{ "STORMINIPORT", DPFLTR_STORMINIPORT_ID },
|
|
||||||
{ "PRINTSPOOLER", DPFLTR_PRINTSPOOLER_ID },
|
|
||||||
{ "VSSDYNDISK", DPFLTR_VSSDYNDISK_ID },
|
|
||||||
{ "VERIFIER", DPFLTR_VERIFIER_ID },
|
|
||||||
{ "VDS", DPFLTR_VDS_ID },
|
|
||||||
{ "VDSBAS", DPFLTR_VDSBAS_ID },
|
|
||||||
{ "VDSDYN", DPFLTR_VDSDYN_ID },
|
|
||||||
{ "VDSDYNDR", DPFLTR_VDSDYNDR_ID },
|
|
||||||
{ "VDSLDR", DPFLTR_VDSLDR_ID },
|
|
||||||
{ "VDSUTIL", DPFLTR_VDSUTIL_ID },
|
|
||||||
{ "DFRGIFC", DPFLTR_DFRGIFC_ID },
|
|
||||||
{ "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 },
|
|
||||||
{ "KTM", DPFLTR_KTM_ID },
|
|
||||||
{ "IOSTRESS", DPFLTR_IOSTRESS_ID },
|
|
||||||
{ "HEAP", DPFLTR_HEAP_ID },
|
|
||||||
{ "WHEA", DPFLTR_WHEA_ID },
|
|
||||||
{ "USERGDI", DPFLTR_USERGDI_ID },
|
|
||||||
{ "MMCSS", DPFLTR_MMCSS_ID },
|
|
||||||
{ "TPM", DPFLTR_TPM_ID },
|
|
||||||
{ "THREADORDER", DPFLTR_THREADORDER_ID },
|
|
||||||
{ "ENVIRON", DPFLTR_ENVIRON_ID },
|
|
||||||
{ "EMS", DPFLTR_EMS_ID },
|
|
||||||
{ "WDT", DPFLTR_WDT_ID },
|
|
||||||
{ "FVEVOL", DPFLTR_FVEVOL_ID },
|
|
||||||
{ "NDIS", DPFLTR_NDIS_ID },
|
|
||||||
{ "NVCTRACE", DPFLTR_NVCTRACE_ID },
|
|
||||||
{ "LUAFV", DPFLTR_LUAFV_ID },
|
|
||||||
{ "APPCOMPAT", DPFLTR_APPCOMPAT_ID },
|
|
||||||
{ "USBSTOR", DPFLTR_USBSTOR_ID },
|
|
||||||
{ "SBP2PORT", DPFLTR_SBP2PORT_ID },
|
|
||||||
{ "COVERAGE", DPFLTR_COVERAGE_ID },
|
|
||||||
{ "CACHEMGR", DPFLTR_CACHEMGR_ID },
|
|
||||||
{ "MOUNTMGR", DPFLTR_MOUNTMGR_ID },
|
|
||||||
{ "CFR", DPFLTR_CFR_ID },
|
|
||||||
{ "TXF", DPFLTR_TXF_ID },
|
|
||||||
{ "KSECDD", DPFLTR_KSECDD_ID },
|
|
||||||
{ "FLTREGRESS", DPFLTR_FLTREGRESS_ID },
|
|
||||||
{ "MPIO", DPFLTR_MPIO_ID },
|
|
||||||
{ "MSDSM", DPFLTR_MSDSM_ID },
|
|
||||||
{ "UDFS", DPFLTR_UDFS_ID },
|
|
||||||
{ "PSHED", DPFLTR_PSHED_ID },
|
|
||||||
{ "STORVSP", DPFLTR_STORVSP_ID },
|
|
||||||
{ "LSASS", DPFLTR_LSASS_ID },
|
|
||||||
{ "SSPICLI", DPFLTR_SSPICLI_ID },
|
|
||||||
{ "CNG", DPFLTR_CNG_ID },
|
|
||||||
{ "EXFAT", DPFLTR_EXFAT_ID },
|
|
||||||
{ "FILETRACE", DPFLTR_FILETRACE_ID },
|
|
||||||
{ "XSAVE", DPFLTR_XSAVE_ID },
|
|
||||||
{ "SE", DPFLTR_SE_ID },
|
|
||||||
{ "DRIVEEXTENDER", DPFLTR_DRIVEEXTENDER_ID },
|
|
||||||
};
|
|
||||||
|
|
||||||
for (i = 0; i < sizeof(ComponentTable) / sizeof(ComponentTable[0]); i++)
|
|
||||||
{
|
|
||||||
if (_stricmp(ComponentName, ComponentTable[i].Name) == 0)
|
|
||||||
{
|
|
||||||
*ComponentId = ComponentTable[i].Id;
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!\brief Evaluates an expression...
|
/*!\brief Evaluates an expression...
|
||||||
*
|
*
|
||||||
* Much like KdbpRpnEvaluateExpression, but prints the error message (if any)
|
* Much like KdbpRpnEvaluateExpression, but prints the error message (if any)
|
||||||
|
@ -647,7 +626,34 @@ end:
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*!\brief Display list of active debug channels
|
/*!\brief Retrieves the component ID corresponding to a given component name.
|
||||||
|
*
|
||||||
|
* \param ComponentName The name of the component.
|
||||||
|
* \param ComponentId Receives the component id on success.
|
||||||
|
*
|
||||||
|
* \retval TRUE Success.
|
||||||
|
* \retval FALSE Failure.
|
||||||
|
*/
|
||||||
|
static BOOLEAN
|
||||||
|
KdbpGetComponentId(
|
||||||
|
IN PCSTR ComponentName,
|
||||||
|
OUT PULONG ComponentId)
|
||||||
|
{
|
||||||
|
ULONG i;
|
||||||
|
|
||||||
|
for (i = 0; i < sizeof(ComponentTable) / sizeof(ComponentTable[0]); i++)
|
||||||
|
{
|
||||||
|
if (_stricmp(ComponentName, ComponentTable[i].Name) == 0)
|
||||||
|
{
|
||||||
|
*ComponentId = ComponentTable[i].Id;
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!\brief Displays the list of active debug channels, or enable/disable debug channels.
|
||||||
*/
|
*/
|
||||||
static BOOLEAN
|
static BOOLEAN
|
||||||
KdbpCmdFilter(
|
KdbpCmdFilter(
|
||||||
|
@ -657,26 +663,44 @@ KdbpCmdFilter(
|
||||||
ULONG i, j, ComponentId, Level;
|
ULONG i, j, ComponentId, Level;
|
||||||
ULONG set = DPFLTR_MASK, clear = DPFLTR_MASK;
|
ULONG set = DPFLTR_MASK, clear = DPFLTR_MASK;
|
||||||
PCHAR pend;
|
PCHAR pend;
|
||||||
LPCSTR opt, p;
|
PCSTR opt, p;
|
||||||
|
|
||||||
static struct
|
static struct
|
||||||
{
|
{
|
||||||
LPCSTR Name;
|
PCSTR Name;
|
||||||
ULONG Level;
|
ULONG Level;
|
||||||
}
|
}
|
||||||
debug_classes[] =
|
debug_classes[] =
|
||||||
{
|
{
|
||||||
{ "error", 1 << DPFLTR_ERROR_LEVEL },
|
{ "error", 1 << DPFLTR_ERROR_LEVEL },
|
||||||
{ "warning", 1 << DPFLTR_WARNING_LEVEL },
|
{ "warning", 1 << DPFLTR_WARNING_LEVEL },
|
||||||
{ "trace", 1 << DPFLTR_TRACE_LEVEL },
|
{ "trace", 1 << DPFLTR_TRACE_LEVEL },
|
||||||
{ "info", 1 << DPFLTR_INFO_LEVEL },
|
{ "info", 1 << DPFLTR_INFO_LEVEL },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if (Argc <= 1)
|
||||||
|
{
|
||||||
|
/* Display the list of available debug filter components */
|
||||||
|
KdbpPrint("REMARKS:\n"
|
||||||
|
"- The 'WIN2000' system-wide debug filter component is used for DbgPrint()\n"
|
||||||
|
" messages without Component ID and Level.\n"
|
||||||
|
"- The 'DEFAULT' debug filter component is used for DbgPrint() messages with\n"
|
||||||
|
" an unknown Component ID.\n\n");
|
||||||
|
KdbpPrint("The list of debug filter components currently available on your system is:\n\n");
|
||||||
|
KdbpPrint(" Component Name Component ID\n"
|
||||||
|
"================ ==============\n");
|
||||||
|
for (i = 0; i < sizeof(ComponentTable) / sizeof(ComponentTable[0]); i++)
|
||||||
|
{
|
||||||
|
KdbpPrint("%16s 0x%08lx\n", ComponentTable[i].Name, ComponentTable[i].Id);
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
for (i = 1; i < Argc; i++)
|
for (i = 1; i < Argc; i++)
|
||||||
{
|
{
|
||||||
opt = Argv[i];
|
opt = Argv[i];
|
||||||
p = opt + strcspn(opt, "+-");
|
p = opt + strcspn(opt, "+-");
|
||||||
if (!p[0]) p = opt; /* assume it's a debug channel name */
|
if (!p[0]) p = opt; /* Assume it's a debug channel name */
|
||||||
|
|
||||||
if (p > opt)
|
if (p > opt)
|
||||||
{
|
{
|
||||||
|
@ -685,7 +709,7 @@ KdbpCmdFilter(
|
||||||
SIZE_T len = strlen(debug_classes[j].Name);
|
SIZE_T len = strlen(debug_classes[j].Name);
|
||||||
if (len != (p - opt))
|
if (len != (p - opt))
|
||||||
continue;
|
continue;
|
||||||
if (_strnicmp(opt, debug_classes[j].Name, len) == 0) /* found it */
|
if (_strnicmp(opt, debug_classes[j].Name, len) == 0) /* Found it */
|
||||||
{
|
{
|
||||||
if (*p == '+')
|
if (*p == '+')
|
||||||
set |= debug_classes[j].Level;
|
set |= debug_classes[j].Level;
|
||||||
|
@ -3521,7 +3545,7 @@ BOOLEAN
|
||||||
KdbpInvokeCliCallbacks(
|
KdbpInvokeCliCallbacks(
|
||||||
IN PCHAR Command,
|
IN PCHAR Command,
|
||||||
IN ULONG Argc,
|
IN ULONG Argc,
|
||||||
IN PCH Argv[])
|
IN PCHAR Argv[])
|
||||||
{
|
{
|
||||||
ULONG i;
|
ULONG i;
|
||||||
|
|
||||||
|
@ -3559,7 +3583,7 @@ KdbpDoCommand(
|
||||||
PCHAR p;
|
PCHAR p;
|
||||||
ULONG Argc;
|
ULONG Argc;
|
||||||
// FIXME: for what do we need a 1024 characters command line and 256 tokens?
|
// FIXME: for what do we need a 1024 characters command line and 256 tokens?
|
||||||
static PCH Argv[256];
|
static PCHAR Argv[256];
|
||||||
static CHAR OrigCommand[1024];
|
static CHAR OrigCommand[1024];
|
||||||
|
|
||||||
RtlStringCbCopyA(OrigCommand, sizeof(OrigCommand), Command);
|
RtlStringCbCopyA(OrigCommand, sizeof(OrigCommand), Command);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue