Winapi EventCreate.exe创建一个;CustomSource“;价值,它意味着什么?

Winapi EventCreate.exe创建一个;CustomSource“;价值,它意味着什么?,winapi,event-log,eventlog-source,custom-eventlog,Winapi,Event Log,Eventlog Source,Custom Eventlog,命令行EventCreate.exe工具在注册表中注册用户定义的事件源,供Windows事件日志查看器使用,如下所示: eventcreate /t INFORMATION /ID 100 /L "Application" /SO [SourceName] /D "Description" 我编写了一个应用程序,它有自己的事件日志资源字符串,并注册为事件源,但它不使用CustomSource值,工作正常 我找不到MSDN上的任何文档,也找不到网上其他地方的CustomSource的确切用途。

命令行
EventCreate.exe
工具在注册表中注册用户定义的事件源,供Windows事件日志查看器使用,如下所示:

eventcreate /t INFORMATION /ID 100 /L "Application" /SO [SourceName] /D "Description"

我编写了一个应用程序,它有自己的事件日志资源字符串,并注册为事件源,但它不使用
CustomSource
值,工作正常

我找不到MSDN上的任何文档,也找不到网上其他地方的
CustomSource
的确切用途。我机器上的所有注册源都没有使用它


有人知道
CustomSource
的用途和工作原理吗?它只是
EventCreate.exe的内部文件,还是Windows事件日志实际使用了它?

感谢@RbMm指出这篇博客文章:

无论出于何种原因,EventCreate仅用于记录与EventCreate创建的事件日志源关联的事件。它通过在创建新源时在源的注册表项中添加一个名为
CustomSource
的注册表项来实现此目的,并为已经存在的源检查该值。因此,在上面的示例中,如果“MyStuff”源在应用程序日志中不存在,上面的命令会创建它,并使用
CustomSource
值配置它的密钥。在验证
CustomSource
值的存在后,使用相同源对EventCreate的后续调用将成功。但是,如果源是通过另一个未创建CustomSource标志的机制创建的,例如使用PowerShell
New EventLog
cmdlet,则会收到错误消息。如果在事件源的键中创建
CustomSource
值,则EventCreate将使用该源


我在system32和子文件夹中搜索-只有EVENTCREATE.EXE和MSI.DLL包含字符串
CustomSource
(这里看起来像MSI.DLL)。基于此,我们可以猜测这是EventCreate.exe内部的更快的东西-否则,其他一些系统二进制文件必须包含此字符串才能查询此值(不要认为它以编码形式包含)。它肯定只是
EventCreate.exe的内部文件