加载程序 ETW 事件

这些事件可收集有关加载和卸载应用程序域、程序集和模块的信息。

LoaderKeyword (0x8) 关键字用于引发所有加载程序事件。 启用了 StartRundown/EndRundown 的 LoaderRundownKeyword (0x8) 用于引发 DCStart 和 DCEnd 事件。 (有关更多信息,请参见 CLR ETW 关键字和级别。)

加载程序事件细分为以下几类:

  • 应用程序域事件

  • CLR 加载程序程序集事件

  • 模块事件

  • CLR 域模块事件

应用程序域事件

下表显示关键字和级别。

用于引发事件的关键字

Event

级别

LoaderKeyword (0x8)

AppDomainLoad_V1 和 AppDomainUnLoad_V1

信息性 (4)

LoaderRundownKeyword (0x8) +

StartRundownKeyword

AppDomainDCStart_V1

信息性 (4)

LoaderRundownKeyword (0x8) +

EndRundownKeyword

AppDomainDCEnd_V1

信息性 (4)

下表显示事件信息。

Event

事件 ID

说明

AppDomainLoad_V1(为所有应用程序域记录)

156

每当在进程的生存期内创建应用程序域时引发。

AppDomainUnLoad_V1

157

每当在进程的生存期内销毁应用程序域时引发。

AppDomainDCStart_V1

157

枚举开始断开期间的应用程序域。

AppDomainDCEnd_V1

158

枚举结束断开期间的应用程序域。

下表显示事件数据。

字段名

数据类型

说明

AppDomainID

win:UInt64

应用程序域的唯一标识符。

AppDomainFlags

win:UInt32

0x1: 默认域。

0x2: 可执行文件。

0x4: 应用程序域,28-31 位:此域的共享策略。

0: 共享域。

AppDomainName

win:UnicodeString

友好的应用程序域名。 在进程的生存期内可能会改变。

AppDomainIndex

Win:UInt32

此应用程序域的索引。

ClrInstanceID

win:UInt16

CLR 或 CoreCLR 的实例的唯一 ID。

返回页首

CLR 加载程序程序集事件

下表显示关键字和级别。

用于引发事件的关键字

Event

级别

LoaderKeyword (0x8)

AssemblyLoad 和 AssemblyUnload

信息性 (4)

LoaderRundownKeyword (0x8) +

StartRundownKeyword

AssemblyDCStart

信息性 (4)

LoaderRundownKeyword (0x8) +

EndRundownKeyword

AssemblyDCEnd

信息性 (4)

下表显示事件信息。

Event

事件 ID

说明

AssemblyLoad_V1

154

当加载程序集时引发。

AssemblyUnload_V1

155

当卸载程序集时引发。

AssemblyDCStart_V1

155

枚举开始断开期间的程序集。

AssemblyDCEnd_V1

156

枚举结束断开期间的程序集。

下表显示事件数据。

字段名

数据类型

说明

AssemblyID

win:UInt64

程序集的唯一 ID。

AppDomainID

win:UInt64

此程序集的域的 ID。

BindingID

win:UInt64

唯一标识程序集绑定的 ID。

AssemblyFlags

win:UInt32

0x1: 非特定域程序集。

0x2: 动态程序集。

0x4: 程序集具有本机映像。

0x8: 可回收程序集。

AssemblyName

win:UnicodeString

完全限定的程序集名称。

ClrInstanceID

win:UInt16

CLR 或 CoreCLR 的实例的唯一 ID。

返回页首

模块事件

下表显示关键字和级别。

用于引发事件的关键字

Event

级别

LoaderKeyword (0x8)

ModuleLoad_V1 和 ModuleUnload_V1

信息性 (4)

LoaderRundownKeyword (0x8) +

StartRundownKeyword

ModuleDCStart_V1

信息性 (4)

LoaderRundownKeyword (0x8) +

EndRundownKeyword

ModuleDCEnd_V1

信息性 (4)

下表显示事件信息。

Event

事件 ID

说明

ModuleLoad_V1

152

在进程的生存期内加载模块时引发。

ModuleUnload_V1

153

在进程的生存期内卸载模块时引发。

ModuleDCStart_V1

153

枚举开始断开期间的模块。

ModuleDCEnd_V1

154

枚举结束断开期间的模块。

下表显示事件数据。

字段名

数据类型

说明

ModuleID

win:UInt64

模块的唯一 ID。

AssemblyID

win:UInt64

此模块驻留的程序集的 ID。

ModuleFlags

win:UInt32

0x1: 非特定域模块。

0x2: 模块具有本机映像。

0x4: 动态模块。

0x8: 清单模块。

Reserved1

win:UInt32

保留字段。

ModuleILPath

win:UnicodeString

模块的 Microsoft 中间语言 (MSIL) 映像的路径;如果为动态程序集(以 null 终止),则为动态模块名称。

ModuleNativePath

win:UnicodeString

以 null 终止的模块本机映像的路径(如果存在)。

ClrInstanceID

win:UInt16

CLR 或 CoreCLR 的实例的唯一 ID。

返回页首

CLR 域模块事件

下表显示关键字和级别。

用于引发事件的关键字

Event

级别

LoaderKeyword (0x8)

DomainModuleLoad_V1

信息性 (4)

LoaderRundownKeyword (0x8) +

StartRundownKeyword

DomainModuleDCStart_V1

信息性 (4)

LoaderRundownKeyword (0x8) +

EndRundownKeyword

DomainModuleDCEnd_V1

信息性 (4)

下表显示事件信息。

Event

事件 ID

说明

DomainModuleLoad_V1

151

在为应用程序域加载模块时引发。

DomainModuleDCStart_V1

151

枚举开始断开期间为应用程序域加载的模块,以及为所有应用程序域记录的模块。

DomainModuleDCEnd_V1

152

枚举结束断开期间为应用程序域加载的模块,以及为所有应用程序域记录的模块。

下表显示事件数据。

字段名

数据类型

说明

ModuleID

win:UInt64

标识此模块所属的程序集。

AssemblyID

win:UInt64

此模块驻留的程序集的 ID。

AppDomainID

win:UInt64

使用此模块的应用程序域的 ID。

ModuleFlags

win:UInt32

0x1: 非特定域模块。

0x2: 模块具有本机映像。

0x4: 动态模块。

0x8: 清单模块。

Reserved1

win:UInt32

保留字段。

ModuleILPath

win:UnicodeString

模块的 MSIL 映像的路径;如果为动态程序集(以 null 终止),则为动态模块名称。

ModuleNativePath

win:UnicodeString

以 null 终止的模块本机映像的路径(如果存在)。

ClrInstanceID

win:UInt16

CLR 或 CoreCLR 的实例的唯一 ID。

返回页首

请参见

概念

CLR ETW 事件