RegisterForRuntimeStartup3 函数

在指定进程中启动 .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 起可用