PFN_WER_RUNTIME_EXCEPTION_DEBUGGER_LAUNCH回调函数 (werapi.h)
Windows 错误报告 (WER) 调用此函数,以便自定义调试器启动选项和启动字符串。
PFN_WER_RUNTIME_EXCEPTION_DEBUGGER_LAUNCH类型定义指向此回调函数的指针。 必须使用“OutOfProcessExceptionEventDebuggerLaunchCallback”作为回调函数的名称。
语法
PFN_WER_RUNTIME_EXCEPTION_DEBUGGER_LAUNCH PfnWerRuntimeExceptionDebuggerLaunch;
HRESULT PfnWerRuntimeExceptionDebuggerLaunch(
[in] PVOID pContext,
[in] const PWER_RUNTIME_EXCEPTION_INFORMATION pExceptionInformation,
[out] PBOOL pbIsCustomDebugger,
[out] PWSTR pwszDebuggerLaunch,
[in, out] PDWORD pchDebuggerLaunch,
[out] PBOOL pbIsDebuggerAutolaunch
)
{...}
参数
[in] pContext
指向在调用 WerRegisterRuntimeExceptionModule 函数以注册异常处理程序时指定的任意上下文信息的指针。
[in] pExceptionInformation
包含异常信息的 WER_RUNTIME_EXCEPTION_INFORMATION 结构。
[out] pbIsCustomDebugger
如果使用 pwszDebuggerLaunch 参数中指定的自定义调试器来调试故障,则设置为 TRUE;否则,设置为 FALSE 以使用默认调试器。 如果将此参数设置为 FALSE,请不要设置 pwszDebuggerLaunch 参数。
[out] pwszDebuggerLaunch
调用方分配的缓冲区,用于指定用于启动调试器的调试器启动字符串。 启动字符串必须包含调试器的完整路径和任何参数。 如果参数包含多个单词,请使用引号分隔参数。 调试器字符串应遵循与默认 AeDebug 调试器字符串相同的协议 (请参阅 配置自动调试) 。 字符串必须包含两个格式说明符:%ld 表示崩溃进程 ID,%ld 表示在自定义调试器附加到目标 (后要发出信号的事件对象的句柄,有关这些说明符的说明,请参阅 启用事后调试) 。 但是,自定义调试器可以选择忽略这些参数。
[in, out] pchDebuggerLaunch
pwszDebuggerLaunch 缓冲区的大小(以字符为单位)。
[out] pbIsDebuggerAutolaunch
如果希望 WER 以无提示方式启动调试器,则设置为 TRUE ;否则,如果希望 WER 在启动调试器之前询问用户,则为 FALSE 。
返回值
返回 S_OK,即使不使用任何客户调试器。 如果返回其他失败代码,WER 将还原为其默认故障报告行为。
备注
必须在异常处理程序 DLL 中实现此函数。
WER 使用此函数来确定要启动的调试器,以及是自动启动调试器,还是在启动调试器之前询问用户。 指定自定义调试器将替代默认启动字符串 (AeDebug 注册表项包含默认启动字符串) 。
仅当将 OutOfProcessExceptionEventCallback 回调函数的 pbOwnershipClaimed 参数设置为 TRUE 时,WER 才会调用此回调函数。
要求
最低受支持的客户端 | Windows 7 [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 R2 [仅限桌面应用] |
目标平台 | Windows |
标头 | werapi.h |