Windows NT 4.0 source code leak
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.

133 lines
4.3 KiB

4 years ago
  1. #define GLOBALS
  2. #include "cap.h"
  3. /* * * * * * * * * * * G L O B A L V A R I A B L E S * * * * * * * * * */
  4. char * VERSION = "3.51 (95.02.02)";
  5. DWORD TlsThdBlk = 0xffffffff; // indexes into Thread Local Storage
  6. DWORD TlsClient = 0xffffffff;
  7. DWORD TlsCapInUse = 0xffffffff;
  8. ULONG ulThdStackSize = 16*PAGE_SIZE;
  9. HANDLE hProfMapObject;
  10. ULONG ulLocProfBlkOff = 0;
  11. PULONG pulProfBlkBase;
  12. PULONG pulProfBlkShared;
  13. PATCHDLLSEC aPatchDllSec [MAX_PATCHES];
  14. int iPatchCnt = 0; // Number of DLLs being patched
  15. SECTIONINFO aSecInfo [MAX_THREADS];
  16. int iThdCnt = 0; // Number of thread being profiled
  17. HANDLE hThisProcess;
  18. HANDLE hLocalSem;
  19. HANDLE hGlobalSem;
  20. HANDLE hDoneEvent;
  21. HANDLE hDumpEvent;
  22. HANDLE hClearEvent;
  23. HANDLE hPauseEvent;
  24. HANDLE hDumpThread;
  25. HANDLE hClearThread;
  26. HANDLE hPauseThread;
  27. PCH pDumpStack;
  28. PCH pClearStack;
  29. PCH pPauseStack;
  30. CLIENT_ID DumpClientId;
  31. CLIENT_ID ClearClientId;
  32. CLIENT_ID PauseClientId;
  33. // change to pointers from static arrays. actual memory is allocated in
  34. // init.c (2-Feb-95: a-robw)
  35. LPTSTR ptchBaseAppImageName = NULL;
  36. LPTSTR ptchFullAppImageName = NULL;
  37. HANDLE hOutFile;
  38. TCHAR atchOutFileName[FILENAMELENGTH]="???";
  39. TCHAR atchFuncName[MAXNAMELENGTH]; //061693 Change
  40. int cChars;
  41. LONGLONG liTimerFreq;
  42. LONGLONG liCalibTicks = 0L;
  43. ULONG ulCalibTime = 0L;
  44. LONGLONG liCalibNestedTicks = 0L;
  45. ULONG ulCalibNestedTime = 0L;
  46. LONGLONG liRestartTicks = 0L;
  47. LONGLONG liWasteOverheadSavRes = 0L;
  48. LONGLONG liWasteOverhead = 0L;
  49. LONGLONG liIncompleteTicks = 0L;
  50. LONGLONG liTotalRunTime;
  51. BOOL fProfiling = FALSE;
  52. BOOL fPaused = FALSE;
  53. DWORD dwDUMMYVAR;
  54. TEB teb;
  55. TCHAR atchPatchBuffer [PATCHFILESZ+1] = "???";
  56. SECURITY_ATTRIBUTES SecAttributes;
  57. SECURITY_DESCRIPTOR SecDescriptor;
  58. BOOL fInThread = FALSE;
  59. BOOL fPatchImage = FALSE;
  60. #ifdef i386
  61. FARPROC longjmpaddr = NULL;
  62. FARPROC setjmpaddr = NULL;
  63. #endif
  64. FARPROC GetLastErrorAddr = NULL;
  65. FARPROC loadlibAaddr = NULL;
  66. FARPROC loadlibExAaddr = NULL;
  67. #ifndef _CHICAGO_
  68. FARPROC loadlibWaddr = NULL;
  69. FARPROC loadlibExWaddr = NULL;
  70. #endif // !_CHICAGO_
  71. PTCHAR ptchPatchExes = "";
  72. PTCHAR ptchPatchImports = "";
  73. PTCHAR ptchPatchCallers = "";
  74. BOOL bCallersToPatch;
  75. PTCHAR ptchNameLength = ""; // 053193 Add
  76. int iNameLength = 0; // 053193 Add
  77. LPSTR lpSymbolSearchPath = NULL;
  78. ULONG gfGlobalDebFlag;
  79. BOOL fCsrSS = FALSE;
  80. BOOL fCalibration = FALSE; // Default
  81. BOOL fDllInit = TRUE; // value
  82. BOOL fUndecorateName = TRUE; // for our flags
  83. BOOL fDumpBinary = FALSE;
  84. BOOL fCapThreadOn = TRUE;
  85. BOOL fLoadLibraryOn = FALSE;
  86. BOOL fSetJumpOn = FALSE;
  87. BOOL fRegularDump = TRUE;
  88. BOOL fChronoCollect = FALSE;
  89. BOOL fChronoDump = FALSE;
  90. BOOL fSecondChanceTranslation = TRUE;
  91. unsigned long ulPerThdAllocSize = MEMSIZE;
  92. CHAR cExcelDelimiter = ' '; // Delimiter for Excel
  93. // This is for DumpChronoFuncs
  94. TCHAR ptchChronoFuncs[CHRONO_FUNCS_SIZE];
  95. TCHAR ptchExcludeFuncs[EXCLUDE_FUNCS_SIZE];
  96. // This is for an optional output file
  97. TCHAR ptchOutputFile[FILENAMELENGTH];
  98. // This Flag is added to indicate if initialization is successful or not
  99. // HWC 11/12/93
  100. BOOL gfInitializationOK = FALSE;
  101. #if defined(MIPS) || defined(ALPHA) || defined(_PPC_)
  102. PATCHCODE PatchStub;
  103. #endif