Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

104 lines
3.1 KiB

  1. /*++
  2. Copyright (c) 1993-2001 Microsoft Corporation
  3. Module Name:
  4. drwatson.h
  5. Abstract:
  6. Common header file for drwatson data structures.
  7. Author:
  8. Wesley Witt (wesw) 1-May-1993
  9. Environment:
  10. User Mode
  11. --*/
  12. typedef enum _CrashDumpType {
  13. FullDump = 0,
  14. MiniDump = 1,
  15. FullMiniDump = 2,
  16. } CrashDumpType;
  17. typedef struct _tagOPTIONS {
  18. _TCHAR szLogPath[MAX_PATH];
  19. _TCHAR szWaveFile[MAX_PATH];
  20. _TCHAR szCrashDump[MAX_PATH];
  21. BOOL fDumpSymbols;
  22. BOOL fDumpAllThreads;
  23. BOOL fAppendToLogFile;
  24. BOOL fVisual;
  25. BOOL fSound;
  26. BOOL fCrash;
  27. // true: Generate user dump name in the range from fname000.dmp to fname999.dmp
  28. // false: standard behavior, always overwrite fname.dmp when generating a new
  29. // dump file.
  30. BOOL fUseSequentialNaming;
  31. // If TRUE use long file names when sequentially naming the dumps
  32. // If FALSE use 8.3 file names when sequentially naming the dumps
  33. // causes the 'n' of characters to be removed from the end of the
  34. // file name to make it fit in the 8.3 format. ie longuser.dmp -> longus00.dmp
  35. BOOL fUseLongFileNames;
  36. int nNextDumpSequence;
  37. DWORD dwInstructions;
  38. DWORD dwMaxCrashes;
  39. CrashDumpType dwType;
  40. } OPTIONS, *POPTIONS;
  41. typedef struct _tagCRASHES {
  42. _TCHAR szAppName[256];
  43. _TCHAR szFunction[256];
  44. SYSTEMTIME time;
  45. DWORD dwExceptionCode;
  46. DWORD_PTR dwAddress;
  47. } CRASHES, *PCRASHES;
  48. typedef struct _tagCRASHINFO {
  49. HWND hList;
  50. CRASHES crash;
  51. HDC hdc;
  52. DWORD cxExtent;
  53. DWORD dwIndex;
  54. DWORD dwIndexDesired;
  55. BYTE *pCrashData;
  56. DWORD dwCrashDataSize;
  57. } CRASHINFO, *PCRASHINFO;
  58. typedef struct _tagDEBUGPACKET {
  59. HWND hwnd;
  60. OPTIONS options;
  61. DWORD dwPidToDebug;
  62. HANDLE hEventToSignal;
  63. HANDLE hProcess;
  64. DWORD dwProcessId;
  65. DWORD ExitStatus;
  66. // Debug engine interfaces.
  67. PDEBUG_CLIENT2 DbgClient;
  68. PDEBUG_CONTROL DbgControl;
  69. PDEBUG_DATA_SPACES DbgData;
  70. PDEBUG_REGISTERS DbgRegisters;
  71. PDEBUG_SYMBOLS DbgSymbols;
  72. PDEBUG_SYSTEM_OBJECTS DbgSystem;
  73. } DEBUGPACKET, *PDEBUGPACKET;
  74. typedef BOOL (CALLBACK* CRASHESENUMPROC)(PCRASHINFO);
  75. #if DBG
  76. #define Assert(exp) if(!(exp)) {AssertError(_T(#exp),_T(__FILE__),__LINE__);}
  77. #else
  78. #define Assert(exp)
  79. #endif
  80. #define WM_DUMPCOMPLETE WM_USER+500
  81. #define WM_EXCEPTIONINFO WM_USER+501
  82. #define WM_ATTACHCOMPLETE WM_USER+502
  83. #define WM_FINISH WM_USER+503
  84. extern const DWORD DrWatsonHelpIds[];