1 /* 2 * PROJECT: ReactOS Kernel 3 * LICENSE: GPL - See COPYING in the top level directory 4 * FILE: ntoskrnl/include/internal/kd64.h 5 * PURPOSE: Internal header for the KD64 Library 6 * PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org) 7 */ 8 9 #pragma once 10 11 // 12 // Default size of the DbgPrint log buffer 13 // 14 #if DBG 15 #define KD_DEFAULT_LOG_BUFFER_SIZE 0x8000 16 #else 17 #define KD_DEFAULT_LOG_BUFFER_SIZE 0x1000 18 #endif 19 20 // 21 // Maximum supported number of breakpoints 22 // 23 #define KD_BREAKPOINT_MAX 32 24 25 // 26 // Highest limit starting which we consider that breakpoint addresses 27 // are either in system space, or in user space but inside shared DLLs. 28 // 29 // I'm wondering whether this can be computed using MmHighestUserAddress 30 // or whether there is already some #define somewhere else... 31 // See http://www.drdobbs.com/windows/faster-dll-load-load/184416918 32 // and http://www.drdobbs.com/rebasing-win32-dlls/184416272 33 // for a tentative explanation. 34 // 35 #define KD_HIGHEST_USER_BREAKPOINT_ADDRESS (PVOID)0x60000000 // MmHighestUserAddress 36 37 // 38 // Breakpoint Status Flags 39 // 40 #define KD_BREAKPOINT_ACTIVE 0x01 41 #define KD_BREAKPOINT_PENDING 0x02 42 #define KD_BREAKPOINT_SUSPENDED 0x04 43 #define KD_BREAKPOINT_EXPIRED 0x08 44 45 // 46 // Structure for Breakpoints 47 // 48 typedef struct _BREAKPOINT_ENTRY 49 { 50 ULONG Flags; 51 ULONG_PTR DirectoryTableBase; 52 PVOID Address; 53 KD_BREAKPOINT_TYPE Content; 54 } BREAKPOINT_ENTRY, *PBREAKPOINT_ENTRY; 55 56 // 57 // Debug and Multi-Processor Switch Routine Definitions 58 // 59 typedef 60 BOOLEAN 61 (NTAPI *PKDEBUG_ROUTINE)( 62 IN PKTRAP_FRAME TrapFrame, 63 IN PKEXCEPTION_FRAME ExceptionFrame, 64 IN PEXCEPTION_RECORD ExceptionRecord, 65 IN PCONTEXT Context, 66 IN KPROCESSOR_MODE PreviousMode, 67 IN BOOLEAN SecondChance 68 ); 69 70 typedef 71 BOOLEAN 72 (NTAPI *PKDEBUG_SWITCH_ROUTINE)( 73 IN PEXCEPTION_RECORD ExceptionRecord, 74 IN PCONTEXT Context, 75 IN BOOLEAN SecondChance 76 ); 77 78 // 79 // Initialization Routines 80 // 81 BOOLEAN 82 NTAPI 83 KdInitSystem( 84 ULONG Reserved, 85 PLOADER_PARAMETER_BLOCK LoaderBlock 86 ); 87 88 VOID 89 NTAPI 90 KdUpdateDataBlock( 91 VOID 92 ); 93 94 // 95 // Determines if the kernel debugger must handle a particular trap 96 // 97 BOOLEAN 98 NTAPI 99 KdIsThisAKdTrap( 100 IN PEXCEPTION_RECORD ExceptionRecord, 101 IN PCONTEXT Context, 102 IN KPROCESSOR_MODE PreviousMode 103 ); 104 105 // 106 // Multi-Processor Switch Support 107 // 108 BOOLEAN 109 NTAPI 110 KdpSwitchProcessor( 111 IN PEXCEPTION_RECORD ExceptionRecord, 112 IN OUT PCONTEXT ContextRecord, 113 IN BOOLEAN SecondChanceException 114 ); 115 116 // 117 // Time Slip Support 118 // 119 VOID 120 NTAPI 121 KdpTimeSlipWork( 122 IN PVOID Context 123 ); 124 125 VOID 126 NTAPI 127 KdpTimeSlipDpcRoutine( 128 IN PKDPC Dpc, 129 IN PVOID DeferredContext, 130 IN PVOID SystemArgument1, 131 IN PVOID SystemArgument2 132 ); 133 134 // 135 // Debug Trap Handlers 136 // 137 BOOLEAN 138 NTAPI 139 KdpStub( 140 IN PKTRAP_FRAME TrapFrame, 141 IN PKEXCEPTION_FRAME ExceptionFrame, 142 IN PEXCEPTION_RECORD ExceptionRecord, 143 IN PCONTEXT ContextRecord, 144 IN KPROCESSOR_MODE PreviousMode, 145 IN BOOLEAN SecondChanceException 146 ); 147 148 BOOLEAN 149 NTAPI 150 KdpTrap( 151 IN PKTRAP_FRAME TrapFrame, 152 IN PKEXCEPTION_FRAME ExceptionFrame, 153 IN PEXCEPTION_RECORD ExceptionRecord, 154 IN PCONTEXT ContextRecord, 155 IN KPROCESSOR_MODE PreviousMode, 156 IN BOOLEAN SecondChanceException 157 ); 158 159 // 160 // Port Locking 161 // 162 VOID 163 NTAPI 164 KdpPortLock( 165 VOID 166 ); 167 168 VOID 169 NTAPI 170 KdpPortUnlock( 171 VOID 172 ); 173 174 BOOLEAN 175 NTAPI 176 KdpPollBreakInWithPortLock( 177 VOID 178 ); 179 180 // 181 // Debugger Enter, Exit, Enable and Disable 182 // 183 BOOLEAN 184 NTAPI 185 KdEnterDebugger( 186 IN PKTRAP_FRAME TrapFrame, 187 IN PKEXCEPTION_FRAME ExceptionFrame 188 ); 189 190 VOID 191 NTAPI 192 KdExitDebugger( 193 IN BOOLEAN Enable 194 ); 195 196 NTSTATUS 197 NTAPI 198 KdEnableDebuggerWithLock( 199 IN BOOLEAN NeedLock 200 ); 201 202 NTSTATUS 203 NTAPI 204 KdDisableDebuggerWithLock( 205 IN BOOLEAN NeedLock 206 ); 207 208 // 209 // Debug Event Handlers 210 // 211 NTSTATUS 212 NTAPI 213 KdpPrint( 214 _In_ ULONG ComponentId, 215 _In_ ULONG Level, 216 _In_reads_bytes_(Length) PCHAR String, 217 _In_ USHORT Length, 218 _In_ KPROCESSOR_MODE PreviousMode, 219 _In_ PKTRAP_FRAME TrapFrame, 220 _In_ PKEXCEPTION_FRAME ExceptionFrame, 221 _Out_ PBOOLEAN Handled 222 ); 223 224 USHORT 225 NTAPI 226 KdpPrompt( 227 _In_reads_bytes_(PromptLength) PCHAR PromptString, 228 _In_ USHORT PromptLength, 229 _Out_writes_bytes_(MaximumResponseLength) PCHAR ResponseString, 230 _In_ USHORT MaximumResponseLength, 231 _In_ KPROCESSOR_MODE PreviousMode, 232 _In_ PKTRAP_FRAME TrapFrame, 233 _In_ PKEXCEPTION_FRAME ExceptionFrame 234 ); 235 236 VOID 237 NTAPI 238 KdpSymbol( 239 IN PSTRING DllPath, 240 IN PKD_SYMBOLS_INFO SymbolInfo, 241 IN BOOLEAN Unload, 242 IN KPROCESSOR_MODE PreviousMode, 243 IN PCONTEXT ContextRecord, 244 IN PKTRAP_FRAME TrapFrame, 245 IN PKEXCEPTION_FRAME ExceptionFrame 246 ); 247 248 VOID 249 NTAPI 250 KdpCommandString( 251 IN PSTRING NameString, 252 IN PSTRING CommandString, 253 IN KPROCESSOR_MODE PreviousMode, 254 IN PCONTEXT ContextRecord, 255 IN PKTRAP_FRAME TrapFrame, 256 IN PKEXCEPTION_FRAME ExceptionFrame 257 ); 258 259 // 260 // State Change Notifications 261 // 262 VOID 263 NTAPI 264 KdpReportLoadSymbolsStateChange( 265 IN PSTRING PathName, 266 IN PKD_SYMBOLS_INFO SymbolInfo, 267 IN BOOLEAN Unload, 268 IN OUT PCONTEXT Context 269 ); 270 271 VOID 272 NTAPI 273 KdpReportCommandStringStateChange( 274 IN PSTRING NameString, 275 IN PSTRING CommandString, 276 IN OUT PCONTEXT Context 277 ); 278 279 BOOLEAN 280 NTAPI 281 KdpReportExceptionStateChange( 282 IN PEXCEPTION_RECORD ExceptionRecord, 283 IN OUT PCONTEXT Context, 284 IN BOOLEAN SecondChanceException 285 ); 286 287 // 288 // Breakpoint Support 289 // 290 ULONG 291 NTAPI 292 KdpAddBreakpoint( 293 IN PVOID Address 294 ); 295 296 VOID 297 NTAPI 298 KdSetOwedBreakpoints( 299 VOID 300 ); 301 302 BOOLEAN 303 NTAPI 304 KdpDeleteBreakpoint( 305 IN ULONG BpEntry 306 ); 307 308 BOOLEAN 309 NTAPI 310 KdpDeleteBreakpointRange( 311 IN PVOID Base, 312 IN PVOID Limit 313 ); 314 315 VOID 316 NTAPI 317 KdpSuspendBreakPoint( 318 IN ULONG BpEntry 319 ); 320 321 VOID 322 NTAPI 323 KdpRestoreAllBreakpoints( 324 VOID 325 ); 326 327 VOID 328 NTAPI 329 KdpSuspendAllBreakPoints( 330 VOID 331 ); 332 333 // 334 // Routine to determine if it is safe to disable the debugger 335 // 336 NTSTATUS 337 NTAPI 338 KdpAllowDisable( 339 VOID 340 ); 341 342 // 343 // Safe memory read & write Support 344 // 345 NTSTATUS 346 NTAPI 347 KdpCopyMemoryChunks( 348 _In_ ULONG64 Address, 349 _In_ PVOID Buffer, 350 _In_ ULONG TotalSize, 351 _In_ ULONG ChunkSize, 352 _In_ ULONG Flags, 353 _Out_opt_ PULONG ActualSize 354 ); 355 356 // 357 // Internal memory handling routines for KD isolation 358 // 359 VOID 360 NTAPI 361 KdpMoveMemory( 362 _In_ PVOID Destination, 363 _In_ PVOID Source, 364 _In_ SIZE_T Length 365 ); 366 367 VOID 368 NTAPI 369 KdpZeroMemory( 370 _In_ PVOID Destination, 371 _In_ SIZE_T Length 372 ); 373 374 // 375 // Low Level Support Routines for the KD API 376 // 377 378 // 379 // Version 380 // 381 VOID 382 NTAPI 383 KdpSysGetVersion( 384 IN PDBGKD_GET_VERSION64 Version 385 ); 386 387 // 388 // Context 389 // 390 VOID 391 NTAPI 392 KdpGetStateChange( 393 IN PDBGKD_MANIPULATE_STATE64 State, 394 IN PCONTEXT Context 395 ); 396 397 VOID 398 NTAPI 399 KdpSetContextState( 400 IN PDBGKD_ANY_WAIT_STATE_CHANGE WaitStateChange, 401 IN PCONTEXT Context 402 ); 403 404 // 405 // MSR 406 // 407 NTSTATUS 408 NTAPI 409 KdpSysReadMsr( 410 IN ULONG Msr, 411 OUT PLARGE_INTEGER MsrValue 412 ); 413 414 NTSTATUS 415 NTAPI 416 KdpSysWriteMsr( 417 IN ULONG Msr, 418 IN PLARGE_INTEGER MsrValue 419 ); 420 421 // 422 // Bus 423 // 424 NTSTATUS 425 NTAPI 426 KdpSysReadBusData( 427 IN ULONG BusDataType, 428 IN ULONG BusNumber, 429 IN ULONG SlotNumber, 430 IN ULONG Offset, 431 IN PVOID Buffer, 432 IN ULONG Length, 433 OUT PULONG ActualLength 434 ); 435 436 NTSTATUS 437 NTAPI 438 KdpSysWriteBusData( 439 IN ULONG BusDataType, 440 IN ULONG BusNumber, 441 IN ULONG SlotNumber, 442 IN ULONG Offset, 443 IN PVOID Buffer, 444 IN ULONG Length, 445 OUT PULONG ActualLength 446 ); 447 448 // 449 // Control Space 450 // 451 NTSTATUS 452 NTAPI 453 KdpSysReadControlSpace( 454 IN ULONG Processor, 455 IN ULONG64 BaseAddress, 456 IN PVOID Buffer, 457 IN ULONG Length, 458 OUT PULONG ActualLength 459 ); 460 461 NTSTATUS 462 NTAPI 463 KdpSysWriteControlSpace( 464 IN ULONG Processor, 465 IN ULONG64 BaseAddress, 466 IN PVOID Buffer, 467 IN ULONG Length, 468 OUT PULONG ActualLength 469 ); 470 471 // 472 // I/O Space 473 // 474 NTSTATUS 475 NTAPI 476 KdpSysReadIoSpace( 477 IN ULONG InterfaceType, 478 IN ULONG BusNumber, 479 IN ULONG AddressSpace, 480 IN ULONG64 IoAddress, 481 IN PVOID DataValue, 482 IN ULONG DataSize, 483 OUT PULONG ActualDataSize 484 ); 485 486 NTSTATUS 487 NTAPI 488 KdpSysWriteIoSpace( 489 IN ULONG InterfaceType, 490 IN ULONG BusNumber, 491 IN ULONG AddressSpace, 492 IN ULONG64 IoAddress, 493 IN PVOID DataValue, 494 IN ULONG DataSize, 495 OUT PULONG ActualDataSize 496 ); 497 498 // 499 // Low Memory 500 // 501 NTSTATUS 502 NTAPI 503 KdpSysCheckLowMemory( 504 IN ULONG Flags 505 ); 506 507 // 508 // Internal routine for sending strings directly to the debugger 509 // 510 VOID 511 __cdecl 512 KdpDprintf( 513 _In_ PCHAR Format, 514 ... 515 ); 516 517 // 518 // Global KD Data 519 // 520 extern DBGKD_GET_VERSION64 KdVersionBlock; 521 extern KDDEBUGGER_DATA64 KdDebuggerDataBlock; 522 extern LIST_ENTRY KdpDebuggerDataListHead; 523 extern KSPIN_LOCK KdpDataSpinLock; 524 extern LARGE_INTEGER KdPerformanceCounterRate; 525 extern LARGE_INTEGER KdTimerStart; 526 extern ULONG KdDisableCount; 527 extern KD_CONTEXT KdpContext; 528 extern PKDEBUG_ROUTINE KiDebugRoutine; 529 extern PKDEBUG_SWITCH_ROUTINE KiDebugSwitchRoutine; 530 extern BOOLEAN KdBreakAfterSymbolLoad; 531 extern BOOLEAN KdPitchDebugger; 532 extern BOOLEAN KdAutoEnableOnEvent; 533 extern BOOLEAN KdBlockEnable; 534 extern BOOLEAN KdIgnoreUmExceptions; 535 extern BOOLEAN KdPreviouslyEnabled; 536 extern BOOLEAN KdpDebuggerStructuresInitialized; 537 extern BOOLEAN KdEnteredDebugger; 538 extern KDPC KdpTimeSlipDpc; 539 extern KTIMER KdpTimeSlipTimer; 540 extern WORK_QUEUE_ITEM KdpTimeSlipWorkItem; 541 extern LONG KdpTimeSlipPending; 542 extern PKEVENT KdpTimeSlipEvent; 543 extern KSPIN_LOCK KdpTimeSlipEventLock; 544 extern BOOLEAN KdpPortLocked; 545 extern BOOLEAN KdpControlCPressed; 546 extern BOOLEAN KdpContextSent; 547 extern KSPIN_LOCK KdpDebuggerLock; 548 extern LARGE_INTEGER KdTimerStop, KdTimerStart, KdTimerDifference; 549 550 extern CHAR KdpMessageBuffer[0x1000], KdpPathBuffer[0x1000]; 551 extern CHAR KdPrintDefaultCircularBuffer[KD_DEFAULT_LOG_BUFFER_SIZE]; 552 extern BREAKPOINT_ENTRY KdpBreakpointTable[KD_BREAKPOINT_MAX]; 553 extern KD_BREAKPOINT_TYPE KdpBreakpointInstruction; 554 extern BOOLEAN KdpOweBreakpoint; 555 extern BOOLEAN BreakpointsSuspended; 556 extern ULONG KdpNumInternalBreakpoints; 557 extern ULONG_PTR KdpCurrentSymbolStart, KdpCurrentSymbolEnd; 558 extern ULONG TraceDataBuffer[40]; 559 extern ULONG TraceDataBufferPosition; 560 561 // 562 // Debug Filter Component Table 563 // 564 #define MAX_KD_COMPONENT_TABLE_ENTRIES (DPFLTR_ENDOFTABLE_ID + 1) 565 extern ULONG KdComponentTableSize; 566 extern PULONG KdComponentTable[MAX_KD_COMPONENT_TABLE_ENTRIES]; 567 568 // 569 // Debug Filter Masks 570 // 571 extern ULONG Kd_WIN2000_Mask; 572 extern ULONG Kd_SYSTEM_Mask; 573 extern ULONG Kd_SMSS_Mask; 574 extern ULONG Kd_SETUP_Mask; 575 extern ULONG Kd_NTFS_Mask; 576 extern ULONG Kd_FSTUB_Mask; 577 extern ULONG Kd_CRASHDUMP_Mask; 578 extern ULONG Kd_CDAUDIO_Mask; 579 extern ULONG Kd_CDROM_Mask; 580 extern ULONG Kd_CLASSPNP_Mask; 581 extern ULONG Kd_DISK_Mask; 582 extern ULONG Kd_REDBOOK_Mask; 583 extern ULONG Kd_STORPROP_Mask; 584 extern ULONG Kd_SCSIPORT_Mask; 585 extern ULONG Kd_SCSIMINIPORT_Mask; 586 extern ULONG Kd_CONFIG_Mask; 587 extern ULONG Kd_I8042PRT_Mask; 588 extern ULONG Kd_SERMOUSE_Mask; 589 extern ULONG Kd_LSERMOUS_Mask; 590 extern ULONG Kd_KBDHID_Mask; 591 extern ULONG Kd_MOUHID_Mask; 592 extern ULONG Kd_KBDCLASS_Mask; 593 extern ULONG Kd_MOUCLASS_Mask; 594 extern ULONG Kd_TWOTRACK_Mask; 595 extern ULONG Kd_WMILIB_Mask; 596 extern ULONG Kd_ACPI_Mask; 597 extern ULONG Kd_AMLI_Mask; 598 extern ULONG Kd_HALIA64_Mask; 599 extern ULONG Kd_VIDEO_Mask; 600 extern ULONG Kd_SVCHOST_Mask; 601 extern ULONG Kd_VIDEOPRT_Mask; 602 extern ULONG Kd_TCPIP_Mask; 603 extern ULONG Kd_DMSYNTH_Mask; 604 extern ULONG Kd_NTOSPNP_Mask; 605 extern ULONG Kd_FASTFAT_Mask; 606 extern ULONG Kd_SAMSS_Mask; 607 extern ULONG Kd_PNPMGR_Mask; 608 extern ULONG Kd_NETAPI_Mask; 609 extern ULONG Kd_SCSERVER_Mask; 610 extern ULONG Kd_SCCLIENT_Mask; 611 extern ULONG Kd_SERIAL_Mask; 612 extern ULONG Kd_SERENUM_Mask; 613 extern ULONG Kd_UHCD_Mask; 614 extern ULONG Kd_RPCPROXY_Mask; 615 extern ULONG Kd_AUTOCHK_Mask; 616 extern ULONG Kd_DCOMSS_Mask; 617 extern ULONG Kd_UNIMODEM_Mask; 618 extern ULONG Kd_SIS_Mask; 619 extern ULONG Kd_FLTMGR_Mask; 620 extern ULONG Kd_WMICORE_Mask; 621 extern ULONG Kd_BURNENG_Mask; 622 extern ULONG Kd_IMAPI_Mask; 623 extern ULONG Kd_SXS_Mask; 624 extern ULONG Kd_FUSION_Mask; 625 extern ULONG Kd_IDLETASK_Mask; 626 extern ULONG Kd_SOFTPCI_Mask; 627 extern ULONG Kd_TAPE_Mask; 628 extern ULONG Kd_MCHGR_Mask; 629 extern ULONG Kd_IDEP_Mask; 630 extern ULONG Kd_PCIIDE_Mask; 631 extern ULONG Kd_FLOPPY_Mask; 632 extern ULONG Kd_FDC_Mask; 633 extern ULONG Kd_TERMSRV_Mask; 634 extern ULONG Kd_W32TIME_Mask; 635 extern ULONG Kd_PREFETCHER_Mask; 636 extern ULONG Kd_RSFILTER_Mask; 637 extern ULONG Kd_FCPORT_Mask; 638 extern ULONG Kd_PCI_Mask; 639 extern ULONG Kd_DMIO_Mask; 640 extern ULONG Kd_DMCONFIG_Mask; 641 extern ULONG Kd_DMADMIN_Mask; 642 extern ULONG Kd_WSOCKTRANSPORT_Mask; 643 extern ULONG Kd_VSS_Mask; 644 extern ULONG Kd_PNPMEM_Mask; 645 extern ULONG Kd_PROCESSOR_Mask; 646 extern ULONG Kd_DMSERVER_Mask; 647 extern ULONG Kd_SR_Mask; 648 extern ULONG Kd_INFINIBAND_Mask; 649 extern ULONG Kd_IHVDRIVER_Mask; 650 extern ULONG Kd_IHVVIDEO_Mask; 651 extern ULONG Kd_IHVAUDIO_Mask; 652 extern ULONG Kd_IHVNETWORK_Mask; 653 extern ULONG Kd_IHVSTREAMING_Mask; 654 extern ULONG Kd_IHVBUS_Mask; 655 extern ULONG Kd_HPS_Mask; 656 extern ULONG Kd_RTLTHREADPOOL_Mask; 657 extern ULONG Kd_LDR_Mask; 658 extern ULONG Kd_TCPIP6_Mask; 659 extern ULONG Kd_ISAPNP_Mask; 660 extern ULONG Kd_SHPC_Mask; 661 extern ULONG Kd_STORPORT_Mask; 662 extern ULONG Kd_STORMINIPORT_Mask; 663 extern ULONG Kd_PRINTSPOOLER_Mask; 664 extern ULONG Kd_VSSDYNDISK_Mask; 665 extern ULONG Kd_VERIFIER_Mask; 666 extern ULONG Kd_VDS_Mask; 667 extern ULONG Kd_VDSBAS_Mask; 668 extern ULONG Kd_VDSDYN_Mask; // Specified in Vista+ 669 extern ULONG Kd_VDSDYNDR_Mask; 670 extern ULONG Kd_VDSLDR_Mask; // Specified in Vista+ 671 extern ULONG Kd_VDSUTIL_Mask; 672 extern ULONG Kd_DFRGIFC_Mask; 673 extern ULONG Kd_DEFAULT_Mask; 674 extern ULONG Kd_MM_Mask; 675 extern ULONG Kd_DFSC_Mask; 676 extern ULONG Kd_WOW64_Mask; 677 // 678 // Components specified in Vista+, some of which we also use in ReactOS 679 // 680 extern ULONG Kd_ALPC_Mask; 681 extern ULONG Kd_WDI_Mask; 682 extern ULONG Kd_PERFLIB_Mask; 683 extern ULONG Kd_KTM_Mask; 684 extern ULONG Kd_IOSTRESS_Mask; 685 extern ULONG Kd_HEAP_Mask; 686 extern ULONG Kd_WHEA_Mask; 687 extern ULONG Kd_USERGDI_Mask; 688 extern ULONG Kd_MMCSS_Mask; 689 extern ULONG Kd_TPM_Mask; 690 extern ULONG Kd_THREADORDER_Mask; 691 extern ULONG Kd_ENVIRON_Mask; 692 extern ULONG Kd_EMS_Mask; 693 extern ULONG Kd_WDT_Mask; 694 extern ULONG Kd_FVEVOL_Mask; 695 extern ULONG Kd_NDIS_Mask; 696 extern ULONG Kd_NVCTRACE_Mask; 697 extern ULONG Kd_LUAFV_Mask; 698 extern ULONG Kd_APPCOMPAT_Mask; 699 extern ULONG Kd_USBSTOR_Mask; 700 extern ULONG Kd_SBP2PORT_Mask; 701 extern ULONG Kd_COVERAGE_Mask; 702 extern ULONG Kd_CACHEMGR_Mask; 703 extern ULONG Kd_MOUNTMGR_Mask; 704 extern ULONG Kd_CFR_Mask; 705 extern ULONG Kd_TXF_Mask; 706 extern ULONG Kd_KSECDD_Mask; 707 extern ULONG Kd_FLTREGRESS_Mask; 708 extern ULONG Kd_MPIO_Mask; 709 extern ULONG Kd_MSDSM_Mask; 710 extern ULONG Kd_UDFS_Mask; 711 extern ULONG Kd_PSHED_Mask; 712 extern ULONG Kd_STORVSP_Mask; 713 extern ULONG Kd_LSASS_Mask; 714 extern ULONG Kd_SSPICLI_Mask; 715 extern ULONG Kd_CNG_Mask; 716 extern ULONG Kd_EXFAT_Mask; 717 extern ULONG Kd_FILETRACE_Mask; 718 extern ULONG Kd_XSAVE_Mask; 719 extern ULONG Kd_SE_Mask; 720 extern ULONG Kd_DRIVEEXTENDER_Mask; 721 // 722 // Components specified in Windows 8 723 // 724 extern ULONG Kd_POWER_Mask; 725 extern ULONG Kd_CRASHDUMPXHCI_Mask; 726 extern ULONG Kd_GPIO_Mask; 727 extern ULONG Kd_REFS_Mask; 728 extern ULONG Kd_WER_Mask; 729 // 730 // Components specified in Windows 10 731 // 732 extern ULONG Kd_CAPIMG_Mask; 733 extern ULONG Kd_VPCI_Mask; 734 extern ULONG Kd_STORAGECLASSMEMORY_Mask; 735 extern ULONG Kd_FSLIB_Mask; 736