WerReportSubmit 函数 (werapi.h)

提交指定的Windows 错误报告 (WER) 报表。

语法

HRESULT WerReportSubmit(
  [in]            HREPORT            hReportHandle,
  [in]            WER_CONSENT        consent,
  [in]            DWORD              dwFlags,
  [out, optional] PWER_SUBMIT_RESULT pSubmitResult
);

参数

[in] hReportHandle

报表的句柄。 此句柄由 WerReportCreate 函数返回。

[in] consent

同意状态。 此参数可以是 WER_CONSENT 枚举类型中的以下值之一。

含义
WerConsentAlwaysPrompt
4
始终要求用户提交请求。
WerConsentApproved
2
用户已批准提交请求。
WerConsentDenied
3
用户已拒绝提交请求。
WerConsentMax
5
WER_CONSENT 枚举类型的最大值。
WerConsentNotAsked
1
未要求用户同意。

[in] dwFlags

此参数可使用以下一个或多个值。

含义
WER_SUBMIT_ADD_REGISTERED_DATA
16
WerSetFlagsWerRegisterFileWerRegisterMemoryBlock 注册的数据添加到报表。
WER_SUBMIT_HONOR_RECOVERY
1
遵循应用程序的任何恢复注册。 有关详细信息,请参阅 RegisterApplicationRecoveryCallback
WER_SUBMIT_HONOR_RESTART
2
遵循应用程序的任何重启注册。 有关详细信息,请参阅 RegisterApplicationRestart
WER_SUBMIT_NO_ARCHIVE
256
不要存档报表。
WER_SUBMIT_NO_CLOSE_UI
64
不显示关键报表的关闭对话框。
WER_SUBMIT_NO_QUEUE
128
不要将报表排队。 如果有足够的用户同意,则立即将报告发送给 Microsoft;否则,将放弃报表。 可以将此标志用于非关键报表。

对于需要将报表排队的任何操作,报告将被丢弃。 例如,如果提交报表时计算机处于脱机状态,则会放弃该报表。 此外,如果 (许可不足,则报表) 的数据部分需要同意,则放弃报表。
WER_SUBMIT_OUTOFPROCESS
32
生成另一个进程来提交报告。 调用线程被阻止,直到函数返回。

注意: 将抽水窗口消息,以便不会阻止调用线程上的 UI 活动。
WER_SUBMIT_OUTOFPROCESS_ASYNC
1024
生成另一个进程以提交报告并立即从此函数调用返回。 请注意, pSubmitResult 参数的内容未定义,并且无法查询报告完成时间或完成状态。
WER_SUBMIT_QUEUE
4
在不通知用户的情况下将报表添加到 WER 队列。 报表仅排队 - 报告 (将报表发送到 Microsoft) 稍后根据用户的同意级别进行。
WER_SUBMIT_SHOW_DEBUG
8
显示调试按钮。
WER_SUBMIT_START_MINIMIZED
512
初始 UI 最小化并闪烁。
WER_SUBMIT_BYPASS_DATA_THROTTLING
2048
绕过报表的数据限制。

Windows 7 或更早版本: 此参数不可用。
WER_SUBMIT_ARCHIVE_PARAMETERS_ONLY
4096
仅存档参数;驾驶室被丢弃。 此标志将替代 ConfigureArchive WER 设置。

Windows 7 或更早版本: 此参数不可用。
WER_SUBMIT_REPORT_MACHINE_ID
8192
始终将唯一的 128 位计算机标识符与报表一起发送,而不考虑提交报表时是否同意。 有关其他信息,请参阅备注。

Windows 7 或更早版本: 此参数不可用。

[out, optional] pSubmitResult

提交的结果。 此参数可以是 WER_SUBMIT_RESULT 枚举类型中的下列值之一。

含义
WerCustomAction
9
可以自定义错误报告。
WerDisabled
5
错误报告已禁用。
WerDisabledQueue
7
队列已禁用。
WerReportAsync
8
报告是异步的。
WerReportCancelled
6
报表已取消。
WerReportDebug
3
单击了“调试”按钮。
WerReportFailed
4
报告提交失败。
WerReportQueued
1
报表已排队。
WerReportUploaded
2
报告已上传。

返回值

此函数在成功时返回 S_OK 或失败时返回错误代码。

注解

应用程序调用此函数后,WER 会收集指定的数据。 如果 consent 参数为 WerConsentApproved,它将向 Microsoft 提交报告。 如果 同意 为 WerConsentNotAsked,WER 将显示同意对话框。 若要确定提交状态,检查 pSubmitResult 参数。

发生关键应用程序事件时,将重启 已注册重启 的应用程序。

计算机标识符在以下情况下随报表一起发送:

  • 用于发送报告的同意不是来自应用程序。 例如,报告是在同意状态设置为 WerConsentNotAsked 的情况下提交的。
  • 报告在提交时设置了WER_SUBMIT_REPORT_MACHINE_ID标志。

若要查看应用程序提交的报表,请转到 Windows 质量在线服务。

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows
标头 werapi.h
Library Wer.lib
DLL Wer.dll

另请参阅

应用程序恢复和重启WerReportCreate、Windows 错误报告