| /** | |
| * This file has no copyright assigned and is placed in the Public Domain. | |
| * This file is part of the mingw-w64 runtime package. | |
| * No warranty is given; refer to the file DISCLAIMER.PD within this package. | |
| */ | |
| #ifndef _INC_WERAPI | |
| #define _INC_WERAPI | |
| #if (_WIN32_WINNT >= 0x0600) | |
| #ifdef __cplusplus | |
| extern "C" { | |
| #endif | |
| typedef HANDLE HREPORT; | |
| #define WER_FAULT_REPORTING_FLAG_NOHEAP 1 | |
| #define WER_FAULT_REPORTING_FLAG_QUEUE 2 | |
| #define WER_FAULT_REPORTING_FLAG_DISABLE_THREAD_SUSPENSION 4 | |
| #define WER_FAULT_REPORTING_FLAG_QUEUE_UPLOAD 8 | |
| #define WER_FAULT_REPORTING_ALWAYS_SHOW_UI 16 | |
| #define WER_FAULT_REPORTING_NO_UI 32 | |
| #define WER_FAULT_REPORTING_FLAG_NO_HEAP_ON_QUEUE 64 | |
| #define WER_FAULT_REPORTING_DISABLE_SNAPSHOT_CRASH 128 | |
| #define WER_FAULT_REPORTING_DISABLE_SNAPSHOT_HANG 256 | |
| #define WER_FAULT_REPORTING_CRITICAL 512 | |
| #define WER_FAULT_REPORTING_DURABLE 1024 | |
| #define WER_MAX_TOTAL_PARAM_LENGTH 1720 | |
| #define WER_MAX_PREFERRED_MODULES 128 | |
| #define WER_MAX_PREFERRED_MODULES_BUFFER 256 | |
| #define WER_MAX_MEM_BLOCK_SIZE (64 * 1024) | |
| #define APPCRASH_EVENT L"APPCRASH" | |
| #define PACKAGED_APPCRASH_EVENT L"MoAppCrash" | |
| #define WER_P0 0 | |
| #define WER_P1 1 | |
| #define WER_P2 2 | |
| #define WER_P3 3 | |
| #define WER_P4 4 | |
| #define WER_P5 5 | |
| #define WER_P6 6 | |
| #define WER_P7 7 | |
| #define WER_P8 8 | |
| #define WER_P9 9 | |
| #define WER_E_INSUFFICIENT_BUFFER (HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER)) | |
| #define WER_E_NOT_FOUND (HRESULT_FROM_WIN32(ERROR_NOT_FOUND)) | |
| #define WER_E_LENGTH_EXCEEDED (HRESULT_FROM_WIN32(ERROR_PARAMETER_QUOTA_EXCEEDED)) | |
| #define WER_E_INVALID_STATE (HRESULT_FROM_WIN32(ERROR_INVALID_STATE)) | |
| #define WER_E_MISSING_DUMP (HRESULT_FROM_WIN32(ERROR_MISSING_SYSTEMFILE)) | |
| #define WER_E_CABBING_FAILURE (HRESULT_FROM_WIN32(ERROR_GEN_FAILURE)) | |
| #define WER_FILE_DELETE_WHEN_DONE 1 | |
| #define WER_FILE_ANONYMOUS_DATA 2 | |
| #define WER_FILE_COMPRESSED 4 | |
| #define WER_SUBMIT_HONOR_RECOVERY 1 | |
| #define WER_SUBMIT_HONOR_RESTART 2 | |
| #define WER_SUBMIT_QUEUE 4 | |
| #define WER_SUBMIT_SHOW_DEBUG 8 | |
| #define WER_SUBMIT_ADD_REGISTERED_DATA 16 | |
| #define WER_SUBMIT_OUTOFPROCESS 32 | |
| #define WER_SUBMIT_NO_CLOSE_UI 64 | |
| #define WER_SUBMIT_NO_QUEUE 128 | |
| #define WER_SUBMIT_NO_ARCHIVE 256 | |
| #define WER_SUBMIT_START_MINIMIZED 512 | |
| #define WER_SUBMIT_OUTOFPROCESS_ASYNC 1024 | |
| #define WER_SUBMIT_BYPASS_DATA_THROTTLING 2048 | |
| #define WER_SUBMIT_ARCHIVE_PARAMETERS_ONLY 4096 | |
| #define WER_SUBMIT_REPORT_MACHINE_ID 8192 | |
| #define WER_SUBMIT_BYPASS_POWER_THROTTLING 16384 | |
| #define WER_SUBMIT_BYPASS_NETWORK_COST_THROTTLING 32768 | |
| #define WER_SUBMIT_DISCARD_IF_QUEUED WER_SUBMIT_NO_QUEUE | |
| #define WER_DUMP_MASK_START 1 | |
| #define WER_DUMP_MASK_DUMPTYPE (WER_DUMP_MASK_START << 0) | |
| #define WER_DUMP_MASK_ONLY_THISTHREAD (WER_DUMP_MASK_START << 1) | |
| #define WER_DUMP_MASK_THREADFLAGS (WER_DUMP_MASK_START << 2) | |
| #define WER_DUMP_MASK_THREADFLAGS_EX (WER_DUMP_MASK_START << 3) | |
| #define WER_DUMP_MASK_OTHERTHREADFLAGS (WER_DUMP_MASK_START << 4) | |
| #define WER_DUMP_MASK_OTHERTHREADFLAGS_EX (WER_DUMP_MASK_START << 5) | |
| #define WER_DUMP_MASK_PREFERRED_MODULESFLAGS (WER_DUMP_MASK_START << 6) | |
| #define WER_DUMP_MASK_OTHER_MODULESFLAGS (WER_DUMP_MASK_START << 7) | |
| #define WER_DUMP_MASK_PREFERRED_MODULE_LIST (WER_DUMP_MASK_START << 8) | |
| #define WER_DUMP_NOHEAP_ONQUEUE 1 | |
| #define WER_DUMP_AUXILIARY 2 | |
| #define WER_MAX_REGISTERED_ENTRIES 512 | |
| #define WER_MAX_REGISTERED_METADATA 8 | |
| #define WER_MAX_REGISTERED_DUMPCOLLECTION 4 | |
| #define WER_METADATA_KEY_MAX_LENGTH 64 | |
| #define WER_METADATA_VALUE_MAX_LENGTH 128 | |
| #define WER_MAX_SIGNATURE_NAME_LENGTH 128 | |
| #define WER_MAX_EVENT_NAME_LENGTH 64 | |
| #define WER_MAX_PARAM_LENGTH MAX_PATH | |
| #define WER_MAX_PARAM_COUNT 10 | |
| #define WER_MAX_FRIENDLY_EVENT_NAME_LENGTH 128 | |
| #define WER_MAX_APPLICATION_NAME_LENGTH 128 | |
| #define WER_MAX_DESCRIPTION_LENGTH 512 | |
| #define WER_MAX_BUCKET_ID_STRING_LENGTH MAX_PATH | |
| #define WER_MAX_LOCAL_DUMP_SUBPATH_LENGTH 64 | |
| #define WER_MAX_REGISTERED_RUNTIME_EXCEPTION_MODULES 16 | |
| #define WER_RUNTIME_EXCEPTION_EVENT_FUNCTION "OutOfProcessExceptionEventCallback" | |
| #define WER_RUNTIME_EXCEPTION_EVENT_SIGNATURE_FUNCTION "OutOfProcessExceptionEventSignatureCallback" | |
| #define WER_RUNTIME_EXCEPTION_DEBUGGER_LAUNCH "OutOfProcessExceptionEventDebuggerLaunchCallback" | |
| typedef enum _WER_FILE_TYPE { | |
| WerFileTypeMicrodump = 1, | |
| WerFileTypeMinidump, | |
| WerFileTypeHeapdump, | |
| WerFileTypeUserDocument, | |
| WerFileTypeOther, | |
| WerFileTypeTriagedump, | |
| WerFileTypeCustomDump, | |
| WerFileTypeAuxiliaryDump, | |
| WerFileTypeEtlTrace, | |
| WerFileTypeMax | |
| } WER_FILE_TYPE; | |
| typedef enum _WER_REGISTER_FILE_TYPE { | |
| WerRegFileTypeUserDocument = 1, | |
| WerRegFileTypeOther, | |
| WerRegFileTypeMax | |
| } WER_REGISTER_FILE_TYPE; | |
| typedef enum _WER_DUMP_TYPE { | |
| WerDumpTypeNone = 0, | |
| WerDumpTypeMicroDump, | |
| WerDumpTypeMiniDump, | |
| WerDumpTypeHeapDump, | |
| WerDumpTypeTriageDump, | |
| WerDumpTypeMax | |
| } WER_DUMP_TYPE; | |
| typedef enum _WER_REPORT_UI { | |
| WerUIAdditionalDataDlgHeader = 1, | |
| WerUIIconFilePath, | |
| WerUIConsentDlgHeader, | |
| WerUIConsentDlgBody, | |
| WerUIOnlineSolutionCheckText, | |
| WerUIOfflineSolutionCheckText, | |
| WerUICloseText, | |
| WerUICloseDlgHeader, | |
| WerUICloseDlgBody, | |
| WerUICloseDlgButtonText, | |
| WerUICustomActionButtonText, | |
| WerUIMax | |
| } WER_REPORT_UI; | |
| typedef enum _WER_CONSENT { | |
| WerConsentNotAsked = 1, | |
| WerConsentApproved, | |
| WerConsentDenied, | |
| WerConsentAlwaysPrompt, | |
| WerConsentMax | |
| } WER_CONSENT; | |
| typedef enum _WER_SUBMIT_RESULT { | |
| WerReportQueued = 1, | |
| WerReportUploaded, | |
| WerReportDebug, | |
| WerReportFailed, | |
| WerDisabled, | |
| WerReportCancelled, | |
| WerDisabledQueue, | |
| WerReportAsync, | |
| WerCustomAction | |
| #if NTDDI_VERSION >= NTDDI_WIN8 | |
| , WerThrottled = 10 | |
| #endif | |
| #if NTDDI_VERSION >= NTDDI_WIN10 | |
| , WerReportUploadedCab = 11 | |
| , WerStorageLocationNotFound = 12 | |
| #endif | |
| , WerSubmitResultMax | |
| } WER_SUBMIT_RESULT, *PWER_SUBMIT_RESULT; | |
| typedef enum _WER_REPORT_TYPE { | |
| WerReportNonCritical = 0, | |
| WerReportCritical, | |
| WerReportApplicationCrash, | |
| WerReportApplicationHang, | |
| WerReportKernel, | |
| WerReportInvalid | |
| } WER_REPORT_TYPE; | |
| typedef struct _WER_DUMP_CUSTOM_OPTIONS { | |
| DWORD dwSize; | |
| DWORD dwMask; | |
| DWORD dwDumpFlags; | |
| WINBOOL bOnlyThisThread; | |
| DWORD dwExceptionThreadFlags; | |
| DWORD dwOtherThreadFlags; | |
| DWORD dwExceptionThreadExFlags; | |
| DWORD dwOtherThreadExFlags; | |
| DWORD dwPreferredModuleFlags; | |
| DWORD dwOtherModuleFlags; | |
| WCHAR wzPreferredModuleList[WER_MAX_PREFERRED_MODULES_BUFFER]; | |
| } WER_DUMP_CUSTOM_OPTIONS, *PWER_DUMP_CUSTOM_OPTIONS; | |
| typedef struct _WER_DUMP_CUSTOM_OPTIONS_V2 { | |
| DWORD dwSize; | |
| DWORD dwMask; | |
| DWORD dwDumpFlags; | |
| WINBOOL bOnlyThisThread; | |
| DWORD dwExceptionThreadFlags; | |
| DWORD dwOtherThreadFlags; | |
| DWORD dwExceptionThreadExFlags; | |
| DWORD dwOtherThreadExFlags; | |
| DWORD dwPreferredModuleFlags; | |
| DWORD dwOtherModuleFlags; | |
| WCHAR wzPreferredModuleList[WER_MAX_PREFERRED_MODULES_BUFFER]; | |
| DWORD dwPreferredModuleResetFlags; | |
| DWORD dwOtherModuleResetFlags; | |
| } WER_DUMP_CUSTOM_OPTIONS_V2, *PWER_DUMP_CUSTOM_OPTIONS_V2; | |
| #if NTDDI_VERSION >= NTDDI_WINBLUE | |
| typedef struct _WER_DUMP_CUSTOM_OPTIONS_V3 { | |
| DWORD dwSize; | |
| DWORD dwMask; | |
| DWORD dwDumpFlags; | |
| WINBOOL bOnlyThisThread; | |
| DWORD dwExceptionThreadFlags; | |
| DWORD dwOtherThreadFlags; | |
| DWORD dwExceptionThreadExFlags; | |
| DWORD dwOtherThreadExFlags; | |
| DWORD dwPreferredModuleFlags; | |
| DWORD dwOtherModuleFlags; | |
| WCHAR wzPreferredModuleList[WER_MAX_PREFERRED_MODULES_BUFFER]; | |
| DWORD dwPreferredModuleResetFlags; | |
| DWORD dwOtherModuleResetFlags; | |
| PVOID pvDumpKey; | |
| HANDLE hSnapshot; | |
| DWORD dwThreadID; | |
| } WER_DUMP_CUSTOM_OPTIONS_V3, *PWER_DUMP_CUSTOM_OPTIONS_V3; | |
| typedef WER_DUMP_CUSTOM_OPTIONS_V3 const *PCWER_DUMP_CUSTOM_OPTIONS_V3; | |
| #endif | |
| typedef struct _WER_EXCEPTION_INFORMATION { | |
| PEXCEPTION_POINTERS pExceptionPointers; | |
| WINBOOL bClientPointers; | |
| } WER_EXCEPTION_INFORMATION, *PWER_EXCEPTION_INFORMATION; | |
| typedef struct _WER_REPORT_INFORMATION { | |
| DWORD dwSize; | |
| HANDLE hProcess; | |
| WCHAR wzConsentKey[64]; | |
| WCHAR wzFriendlyEventName[128]; | |
| WCHAR wzApplicationName[128]; | |
| WCHAR wzApplicationPath[MAX_PATH]; | |
| WCHAR wzDescription[512]; | |
| HWND hwndParent; | |
| } WER_REPORT_INFORMATION, *PWER_REPORT_INFORMATION; | |
| #if NTDDI_VERSION >= NTDDI_WIN8 | |
| typedef struct _WER_REPORT_INFORMATION_V3 { | |
| DWORD dwSize; | |
| HANDLE hProcess; | |
| WCHAR wzConsentKey[64]; | |
| WCHAR wzFriendlyEventName[128]; | |
| WCHAR wzApplicationName[128]; | |
| WCHAR wzApplicationPath[MAX_PATH]; | |
| WCHAR wzDescription[512]; | |
| HWND hwndParent; | |
| WCHAR wzNamespacePartner[64]; | |
| WCHAR wzNamespaceGroup[64]; | |
| } WER_REPORT_INFORMATION_V3, *PWER_REPORT_INFORMATION_V3; | |
| #endif | |
| #if NTDDI_VERSION >= NTDDI_WINBLUE | |
| typedef struct _WER_REPORT_INFORMATION_V4 { | |
| DWORD dwSize; | |
| HANDLE hProcess; | |
| WCHAR wzConsentKey[64]; | |
| WCHAR wzFriendlyEventName[128]; | |
| WCHAR wzApplicationName[128]; | |
| WCHAR wzApplicationPath[MAX_PATH]; | |
| WCHAR wzDescription[512]; | |
| HWND hwndParent; | |
| WCHAR wzNamespacePartner[64]; | |
| WCHAR wzNamespaceGroup[64]; | |
| BYTE rgbApplicationIdentity[16]; | |
| HANDLE hSnapshot; | |
| HANDLE hDeleteFilesImpersonationToken; | |
| } WER_REPORT_INFORMATION_V4, *PWER_REPORT_INFORMATION_V4; | |
| typedef WER_REPORT_INFORMATION_V4 const *PCWER_REPORT_INFORMATION_V4; | |
| #endif | |
| #if NTDDI_VERSION >= NTDDI_WIN10 | |
| typedef struct _WER_REPORT_INFORMATION_V5 { | |
| DWORD dwSize; | |
| HANDLE hProcess; | |
| WCHAR wzConsentKey[64]; | |
| WCHAR wzFriendlyEventName[128]; | |
| WCHAR wzApplicationName[128]; | |
| WCHAR wzApplicationPath[MAX_PATH]; | |
| WCHAR wzDescription[512]; | |
| HWND hwndParent; | |
| WCHAR wzNamespacePartner[64]; | |
| WCHAR wzNamespaceGroup[64]; | |
| BYTE rgbApplicationIdentity[16]; | |
| HANDLE hSnapshot; | |
| HANDLE hDeleteFilesImpersonationToken; | |
| WER_SUBMIT_RESULT submitResultMax; | |
| } WER_REPORT_INFORMATION_V5, *PWER_REPORT_INFORMATION_V5; | |
| typedef WER_REPORT_INFORMATION_V5 const *PCWER_REPORT_INFORMATION_V5; | |
| #endif | |
| HRESULT WINAPI WerAddExcludedApplication(PCWSTR pwzExeName,WINBOOL bAllUsers); | |
| HRESULT WINAPI WerGetFlags(HANDLE hProcess,PDWORD pdwFlags); | |
| HRESULT WINAPI WerRegisterFile(PCWSTR pwzFile,WER_REGISTER_FILE_TYPE regFileType,DWORD dwFlags); | |
| HRESULT WINAPI WerRegisterMemoryBlock(PVOID pvAddress,DWORD dwSize); | |
| HRESULT WINAPI WerRemoveExcludedApplication(PCWSTR pwzExeName,WINBOOL bAllUsers); | |
| HRESULT WINAPI WerReportAddDump(HREPORT hReportHandle,HANDLE hProcess,HANDLE hThread,WER_DUMP_TYPE dumpType,PWER_EXCEPTION_INFORMATION pExceptionParam,PWER_DUMP_CUSTOM_OPTIONS pDumpCustomOptions,DWORD dwFlags); | |
| HRESULT WINAPI WerReportAddFile(HREPORT hReportHandle,PCWSTR pwzPath,WER_FILE_TYPE repFileType,DWORD dwFileFlags); | |
| HRESULT WINAPI WerReportCloseHandle(HREPORT hReportHandle); | |
| HRESULT WINAPI WerReportCreate(PCWSTR pwzEventType,WER_REPORT_TYPE repType,PWER_REPORT_INFORMATION pReportInformation,HREPORT *phReportHandle); | |
| HRESULT WINAPI WerReportHang(HWND hwndHungWindow,PCWSTR wszHungApplicationName); | |
| HRESULT WINAPI WerReportSetParameter(HREPORT hReportHandle,DWORD dwparamID,PCWSTR pwzName,PCWSTR pwzValue); | |
| HRESULT WINAPI WerReportSetUIOption(HREPORT hReportHandle,WER_REPORT_UI repUITypeID,PCWSTR pwzValue); | |
| HRESULT WINAPI WerReportSubmit(HREPORT hReportHandle,WER_CONSENT consent,DWORD dwFlags,PWER_SUBMIT_RESULT pSubmitResult); | |
| HRESULT WINAPI WerSetFlags(DWORD dwFlags); | |
| HRESULT WINAPI WerUnregisterFile(PCWSTR pwzFilePath); | |
| HRESULT WINAPI WerUnregisterMemoryBlock(PVOID pvAddress); | |
| HRESULT WINAPI WerRegisterExcludedMemoryBlock(const void* address, DWORD size); | |
| HRESULT WINAPI WerUnregisterExcludedMemoryBlock(const void* address); | |
| HRESULT WINAPI WerRegisterCustomMetadata(PCWSTR key, PCWSTR value); | |
| HRESULT WINAPI WerUnregisterCustomMetadata(PCWSTR key); | |
| HRESULT WINAPI WerRegisterAdditionalProcess(DWORD processId, DWORD captureExtraInfoForThreadId); | |
| HRESULT WINAPI WerUnregisterAdditionalProcess(DWORD processId); | |
| HRESULT WINAPI WerRegisterAppLocalDump(PCWSTR localAppDataRelativePath); | |
| HRESULT WINAPI WerUnregisterAppLocalDump(void); | |
| HRESULT WINAPI WerSetMaxProcessHoldMilliseconds(DWORD dwMilliseconds); | |
| #if (_WIN32_WINNT >= 0x0601) | |
| typedef struct _WER_RUNTIME_EXCEPTION_INFORMATION { | |
| DWORD dwSize; | |
| HANDLE hProcess; | |
| HANDLE hThread; | |
| EXCEPTION_RECORD exceptionRecord; | |
| CONTEXT context; | |
| PCWSTR pwszReportId; | |
| WINBOOL bIsFatal; | |
| DWORD dwReserved; | |
| } WER_RUNTIME_EXCEPTION_INFORMATION, *PWER_RUNTIME_EXCEPTION_INFORMATION; | |
| typedef HRESULT (WINAPI *PFN_WER_RUNTIME_EXCEPTION_EVENT)( | |
| PVOID pContext, | |
| const PWER_RUNTIME_EXCEPTION_INFORMATION pExceptionInformation, | |
| WINBOOL *pbOwnershipClaimed, | |
| PWSTR pwszEventName, | |
| PDWORD pchSize, | |
| PDWORD pdwSignatureCount | |
| ); | |
| typedef HRESULT (WINAPI *PFN_WER_RUNTIME_EXCEPTION_DEBUGGER_LAUNCH)( | |
| PVOID pContext, | |
| const PWER_RUNTIME_EXCEPTION_INFORMATION pExceptionInformation, | |
| PBOOL pbIsCustomDebugger, | |
| PWSTR pwszDebuggerLaunch, | |
| PDWORD pchDebuggerLaunch, | |
| PBOOL pbIsDebuggerAutolaunch | |
| ); | |
| typedef HRESULT (WINAPI *PFN_WER_RUNTIME_EXCEPTION_EVENT_SIGNATURE)( | |
| PVOID pContext, | |
| const PWER_RUNTIME_EXCEPTION_INFORMATION pExceptionInformation, | |
| DWORD dwIndex, | |
| PWSTR pwszName, | |
| PDWORD pchName, | |
| PWSTR pwszValue, | |
| PDWORD pchValue | |
| ); | |
| HRESULT WINAPI WerRegisterRuntimeExceptionModule( | |
| PCWSTR pwszOutOfProcessCallbackDll, | |
| PVOID pContext | |
| ); | |
| HRESULT WINAPI WerUnregisterRuntimeExceptionModule( | |
| PCWSTR pwszOutOfProcessCallbackDll, | |
| PVOID pContext | |
| ); | |
| #endif /*(_WIN32_WINNT >= 0x0601)*/ | |
| typedef enum _REPORT_STORE_TYPES { | |
| E_STORE_USER_ARCHIVE = 0, | |
| E_STORE_USER_QUEUE, | |
| E_STORE_MACHINE_ARCHIVE, | |
| E_STORE_MACHINE_QUEUE, | |
| E_STORE_INVALID | |
| } REPORT_STORE_TYPES; | |
| typedef PVOID HREPORTSTORE, *PHREPORTSTORE; | |
| typedef struct _WER_REPORT_PARAMETER { | |
| WCHAR Name[WER_MAX_SIGNATURE_NAME_LENGTH + 1]; | |
| WCHAR Value[WER_MAX_PARAM_LENGTH]; | |
| }WER_REPORT_PARAMETER, PWER_REPORT_PARAMETER; | |
| typedef struct _WER_REPORT_SIGNATURE { | |
| WCHAR EventName[WER_MAX_EVENT_NAME_LENGTH + 1]; | |
| WER_REPORT_PARAMETER Parameters[WER_MAX_PARAM_COUNT]; | |
| } WER_REPORT_SIGNATURE, *PWER_REPORT_SIGNATURE; | |
| typedef struct _WER_REPORT_METADATA_V1 { | |
| WER_REPORT_SIGNATURE Signature; | |
| GUID BucketId; | |
| GUID ReportId; | |
| FILETIME CreationTime; | |
| ULONGLONG SizeInBytes; | |
| } WER_REPORT_METADATA_V1, *PWER_REPORT_METADATA_V1; | |
| typedef struct _WER_REPORT_METADATA_V2 { | |
| WER_REPORT_SIGNATURE Signature; | |
| GUID BucketId; | |
| GUID ReportId; | |
| FILETIME CreationTime; | |
| ULONGLONG SizeInBytes; | |
| WCHAR CabId[MAX_PATH]; | |
| DWORD ReportStatus; | |
| GUID ReportIntegratorId; | |
| DWORD NumberOfFiles; | |
| DWORD SizeOfFileNames; | |
| WCHAR *FileNames; | |
| } WER_REPORT_METADATA_V2, *PWER_REPORT_METADATA_V2; | |
| typedef struct _WER_REPORT_METADATA_V3 { | |
| WER_REPORT_SIGNATURE Signature; | |
| GUID BucketId; | |
| GUID ReportId; | |
| FILETIME CreationTime; | |
| ULONGLONG SizeInBytes; | |
| WCHAR CabId[MAX_PATH]; | |
| DWORD ReportStatus; | |
| GUID ReportIntegratorId; | |
| DWORD NumberOfFiles; | |
| DWORD SizeOfFileNames; | |
| WCHAR *FileNames; | |
| WCHAR FriendlyEventName[WER_MAX_FRIENDLY_EVENT_NAME_LENGTH]; | |
| WCHAR ApplicationName[WER_MAX_APPLICATION_NAME_LENGTH]; | |
| WCHAR ApplicationPath[MAX_PATH]; | |
| WCHAR Description[WER_MAX_DESCRIPTION_LENGTH]; | |
| WCHAR BucketIdString[WER_MAX_BUCKET_ID_STRING_LENGTH]; | |
| ULONGLONG LegacyBucketId; | |
| } WER_REPORT_METADATA_V3, *PWER_REPORT_METADATA_V3; | |
| HRESULT WINAPI WerStoreOpen(REPORT_STORE_TYPES repStoreType, PHREPORTSTORE phReportStore); | |
| VOID WINAPI WerStoreClose(HREPORTSTORE hReportStore); | |
| HRESULT WINAPI WerStoreGetFirstReportKey(HREPORTSTORE hReportStore, PCWSTR *ppszReportKey); | |
| HRESULT WINAPI WerStoreGetNextReportKey(HREPORTSTORE hReportStore, PCWSTR *ppszReportKey); | |
| HRESULT WINAPI WerStoreQueryReportMetadataV1(HREPORTSTORE hReportStore, PCWSTR pszReportKey, PWER_REPORT_METADATA_V1 pReportMetadata); | |
| HRESULT WINAPI WerStoreQueryReportMetadataV2(HREPORTSTORE hReportStore, PCWSTR pszReportKey, PWER_REPORT_METADATA_V2 pReportMetadata); | |
| HRESULT WINAPI WerStoreQueryReportMetadataV3(HREPORTSTORE hReportStore, PCWSTR pszReportKey, PWER_REPORT_METADATA_V3 pReportMetadata); | |
| VOID WINAPI WerFreeString(PCWSTR pwszStr); | |
| HRESULT WINAPI WerStorePurge(void); | |
| HRESULT WINAPI WerStoreGetReportCount(HREPORTSTORE hReportStore, DWORD *pdwReportCount); | |
| HRESULT WINAPI WerStoreGetSizeOnDisk(HREPORTSTORE hReportStore, ULONGLONG *pqwSizeInBytes); | |
| HRESULT WINAPI WerStoreUploadReport(HREPORTSTORE hReportStore, PCWSTR pszReportKey, DWORD dwFlags, PWER_SUBMIT_RESULT pSubmitResult); | |
| #ifdef __cplusplus | |
| } | |
| #endif | |
| #endif /*(_WIN32_WINNT >= 0x0600)*/ | |
| #endif /*_INC_WERAPI*/ |