RegisterForRuntimeStartup 函数

当 .NET 运行时在指定的进程中启动时执行回调。

语法

HRESULT RegisterForRuntimeStartup (
    [in] DWORD dwProcessId,
    [in] PSTARTUP_CALLBACK pfnCallback,
    [in] PVOID parameter,
    [out] PVOID *ppUnregisterToken)
);

参数

dwProcessId
[in] 目标进程的进程 ID。

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 Core 2.1 起可用