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

另请参阅

WerRegisterRuntimeExceptionModuleWindows 错误报告