Leaked source code of windows server 2003
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.

106 lines
4.2 KiB

  1. /*++
  2. Copyright (c) 1993 Microsoft Corporation
  3. Module Name:
  4. globals.h
  5. Abstract:
  6. This module implements all global variables used in dbghelp.dll
  7. Author:
  8. Pat Styles (patst) 14-July-2000
  9. Revision History:
  10. --*/
  11. #ifdef GLOBALS
  12. #include <private.h>
  13. #include <symbols.h>
  14. #endif
  15. typedef struct {
  16. HINSTANCE hinst;
  17. HANDLE hHeap;
  18. DWORD tlsIndex;
  19. #ifdef IMAGEHLP_HEAP_DEBUG
  20. LIST_ENTRY HeapHeader;
  21. ULONG_PTR TotalMemory;
  22. ULONG TotalAllocs;
  23. #endif
  24. OSVERSIONINFO OSVerInfo;
  25. API_VERSION ApiVersion;
  26. API_VERSION AppVersion;
  27. ULONG MachineType;
  28. CRITICAL_SECTION threadlock;
  29. #ifdef BUILD_DBGHELP
  30. HINSTANCE hSymSrv;
  31. PSYMBOLSERVERPROC fnSymbolServer;
  32. PSYMBOLSERVERCLOSEPROC fnSymbolServerClose;
  33. PSYMBOLSERVERSETOPTIONSPROC fnSymbolServerSetOptions;
  34. PSYMBOLSERVERPINGPROC fnSymbolServerPing;
  35. HINSTANCE hSrcSrv;
  36. PSRCSRVINITPROC fnSrcSrvInit;
  37. PSRCSRVCLEANUPPROC fnSrcSrvCleanup;
  38. PSRCSRVSETTARGETPATHPROC fnSrcSrvSetTargetPath;
  39. PSRCSRVSETOPTIONSPROC fnSrcSrvSetOptions;
  40. PSRCSRVGETOPTIONSPROC fnSrcSrvGetOptions;
  41. PSRCSRVLOADMODULEPROC fnSrcSrvLoadModule;
  42. PSRCSRVUNLOADMODULEPROC fnSrcSrvUnloadModule;
  43. PSRCSRVREGISTERCALLBACKPROC fnSrcSrvRegisterCallback;
  44. PSRCSRVGETFILEPROC fnSrcSrvGetFile;
  45. DWORD cProcessList;
  46. LIST_ENTRY ProcessList;
  47. BOOL SymInitialized;
  48. DWORD SymOptions;
  49. ULONG LastSymLoadError;
  50. char DebugToken[MAX_SYM_NAME + 1];
  51. PREAD_PROCESS_MEMORY_ROUTINE ImagepUserReadMemory32;
  52. PFUNCTION_TABLE_ACCESS_ROUTINE ImagepUserFunctionTableAccess32;
  53. PGET_MODULE_BASE_ROUTINE ImagepUserGetModuleBase32;
  54. PTRANSLATE_ADDRESS_ROUTINE ImagepUserTranslateAddress32;
  55. HWND hwndParent;
  56. int hLog;
  57. BOOL fdbgout;
  58. BOOL fbp; // set this to true and dbghelp internal debugging breakpoints will fire
  59. BOOL fCoInit; // set to true if CoInitialize was called.
  60. char HomeDir[MAX_PATH + 1];
  61. char SymDir[MAX_PATH + 1];
  62. char SrcDir[MAX_PATH + 1];
  63. #endif
  64. } GLOBALS, *PGLOBALS;
  65. typedef struct {
  66. DWORD tid;
  67. #ifdef BUILD_DBGHELP
  68. PREAD_PROCESS_MEMORY_ROUTINE ImagepUserReadMemory32;
  69. PFUNCTION_TABLE_ACCESS_ROUTINE ImagepUserFunctionTableAccess32;
  70. PGET_MODULE_BASE_ROUTINE ImagepUserGetModuleBase32;
  71. PTRANSLATE_ADDRESS_ROUTINE ImagepUserTranslateAddress32;
  72. IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY AlphaFunctionEntry64;
  73. BOOL DebugFunctionEntries;
  74. class Ia64FunctionEntryCache* Ia64FunctionEntries;
  75. class Amd64FunctionEntryCache* Amd64FunctionEntries;
  76. class Axp32FunctionEntryCache* Axp32FunctionEntries;
  77. class Axp64FunctionEntryCache* Axp64FunctionEntries;
  78. class ArmFunctionEntryCache* ArmFunctionEntries;
  79. IMAGE_IA64_RUNTIME_FUNCTION_ENTRY Ia64FunctionEntry;
  80. _IMAGE_RUNTIME_FUNCTION_ENTRY Amd64FunctionEntry;
  81. IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY Axp64FunctionEntry;
  82. IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY ArmFunctionEntry;
  83. IMAGE_FUNCTION_ENTRY FunctionEntry32;
  84. IMAGE_FUNCTION_ENTRY64 FunctionEntry64;
  85. VWNDIA64_UNWIND_CONTEXT UnwindContext[VWNDIA64_UNWIND_CONTEXT_TABLE_SIZE];
  86. UINT UnwindContextNew;
  87. #endif
  88. } TLS, *PTLS;
  89. extern GLOBALS g;
  90. extern PTLS GetTlsPtr(void);
  91. #define tlsvar(a) (GetTlsPtr()->a)