30 #ifndef CLIENT_WINDOWS_CRASH_GENERATION_MINIDUMP_GENERATOR_H_    31 #define CLIENT_WINDOWS_CRASH_GENERATION_MINIDUMP_GENERATOR_H_    45 class MinidumpGenerator {
    58                      DWORD requesting_thread_id,
    59                      EXCEPTION_POINTERS* exception_pointers,
    61                      MINIDUMP_TYPE dump_type,
    62                      bool is_client_pointers,
    63                      std::wstring* dump_path);
    71                      DWORD requesting_thread_id,
    72                      EXCEPTION_POINTERS* exception_pointers,
    74                      MINIDUMP_TYPE dump_type,
    75                      bool is_client_pointers,
    76                      std::wstring* dump_path,
    77                      std::wstring* full_dump_path);
    86                      DWORD requesting_thread_id,
    87                      EXCEPTION_POINTERS* exception_pointers,
    89                      MINIDUMP_TYPE dump_type,
    90                      bool is_client_pointers,
    92                      HANDLE full_dump_file);
    97   typedef BOOL (WINAPI* MiniDumpWriteDumpType)(
   101       MINIDUMP_TYPE DumpType,
   102       CONST PMINIDUMP_EXCEPTION_INFORMATION ExceptionParam,
   103       CONST PMINIDUMP_USER_STREAM_INFORMATION UserStreamParam,
   104       CONST PMINIDUMP_CALLBACK_INFORMATION CallbackParam);
   107   typedef RPC_STATUS (RPC_ENTRY* UuidCreateType)(UUID* Uuid);
   110   HMODULE GetDbghelpModule();
   114   MiniDumpWriteDumpType GetWriteDump();
   117   HMODULE GetRpcrt4Module();
   121   UuidCreateType GetCreateUuid();
   124   bool GenerateDumpFilePath(std::wstring* file_path);
   127   HMODULE dbghelp_module_;
   130   MiniDumpWriteDumpType write_dump_;
   133   HMODULE rpcrt4_module_;
   136   UuidCreateType create_uuid_;
   139   std::wstring dump_path_;
   142   CRITICAL_SECTION module_load_sync_;
   146   CRITICAL_SECTION get_proc_address_sync_;
   151 #endif  // CLIENT_WINDOWS_CRASH_GENERATION_MINIDUMP_GENERATOR_H_ bool WriteMinidump(HANDLE process_handle, DWORD process_id, DWORD thread_id, DWORD requesting_thread_id, EXCEPTION_POINTERS *exception_pointers, MDRawAssertionInfo *assert_info, MINIDUMP_TYPE dump_type, bool is_client_pointers, std::wstring *dump_path)
virtual ~MinidumpGenerator()