MiniDumper.h 872 B

123456789101112131415161718192021222324252627282930313233
  1. #ifndef MINIDUMPER_H
  2. #define MINIDUMPER_H
  3. #include <windows.h>
  4. class CMiniDumper
  5. {
  6. public:
  7. CMiniDumper(bool bPromptUserForMiniDump);
  8. ~CMiniDumper(void);
  9. private:
  10. static LONG WINAPI unhandledExceptionHandler(struct _EXCEPTION_POINTERS *pExceptionInfo);
  11. void setMiniDumpFileName(void);
  12. bool getImpersonationToken(HANDLE* phToken);
  13. BOOL enablePrivilege(LPCTSTR pszPriv, HANDLE hToken, TOKEN_PRIVILEGES* ptpOld);
  14. BOOL restorePrivilege(HANDLE hToken, TOKEN_PRIVILEGES* ptpOld);
  15. LONG writeMiniDump(_EXCEPTION_POINTERS *pExceptionInfo );
  16. _EXCEPTION_POINTERS *m_pExceptionInfo;
  17. TCHAR m_szMiniDumpPath[MAX_PATH];
  18. TCHAR m_szAppPath[MAX_PATH];
  19. TCHAR m_szAppBaseName[MAX_PATH];
  20. bool m_bPromptUserForMiniDump;
  21. static CMiniDumper* s_pMiniDumper;
  22. static LPCRITICAL_SECTION s_pCriticalSection;
  23. };
  24. #endif // MINIDUMPER_H