在指定进程中启动 .NET 运行时时执行回调。
语法
HRESULT RegisterForRuntimeStartup3 (
[in] DWORD dwProcessId,
[in] LPCWSTR lpApplicationGroupId,
[in] ICLRDebuggingLibraryProvider3* pLibraryProvider,
[in] PSTARTUP_CALLBACK pfnCallback,
[in] PVOID parameter,
[out] PVOID *ppUnregisterToken)
);
参数
dwProcessId
[in]目标进程的进程 ID。
lpApplicationGroupId
[in]一个字符串,表示在 Mac 中运行的沙盒进程的应用程序组 ID。 如果进程未在沙盒和其他平台中运行,则传递 NULL。
pLibraryProvider
[in]用于查找 DBI 和 DAC 的回调接口实例。 请参阅 ICLRDebuggingLibraryProvider3 接口。
pfnCallback
[in]运行时启动时调用的回调。 请参阅 PSTARTUP_CALLBACK 函数指针。
parameter
[in] 传递给 pfnCallback 的数据指针。
ppUnregisterToken
[out] 指针,返回 UnregisterForRuntimeStartup 令牌。
返回值
S_OK
已成功注册启动回调。
E_INVALIDARG
要么pfnCallbackppUnregisterToken为 null。
E_FAIL (或其他 E_ 返回代码)
回调注册失败。
注解
回调为运行时版本传递正确的 ICorDebug 实例;如果出现错误,则返回错误。 此 API 适用于启动和附加(甚至附加方案(如果运行时尚未加载)同样在 xplat 和 Windows 上。 回调始终在单独的线程上调用。 此 API 会立即返回。 在早期初始化期间加载 coreclr 运行时模块时调用回调。 在初始化期间阻止运行时,直到回调返回。 如果运行时已在进程中加载(与正常附加情况一样),则会执行回调,并且不会阻止运行时。 回调始终在单独的线程上调用,此 API 会立即返回。 目前仅支持在目标进程中找到的第一个 coreclr 模块实例。
这是适用于单文件应用程序的唯一寄存器函数。
要求
平台: 请参阅 .NET 支持的作系统。
标头: dbgshim.h
库: dbgshim.dll、libdbgshim.so、libdbgshim.dylib
.NET 版本: 自 .NET 6.0 起可用