ChannelType 复杂类型

定义提供程序可以将事件记录到的通道。

<xs:complexType name="ChannelType"
    mixed="true"
>
    <xs:sequence>
        <xs:element name="logging"
            type="ChannelLoggingType"
            minOccurs="0"
         />
        <xs:element name="publishing"
            type="ChannelPublishingType"
            minOccurs="0"
         />
    </xs:sequence>
    <xs:attribute name="name"
        type="anyURI"
        use="required"
     />
    <xs:attribute name="chid"
        type="token"
        use="optional"
     />
    <xs:attribute name="type"
        type="string"
        use="required"
     />
    <xs:attribute name="symbol"
        type="CSymbolType"
        use="optional"
     />
    <xs:attribute name="access"
        type="string"
        use="optional"
     />
    <xs:attribute name="isolation"
        type="string"
        use="optional"
     />
    <xs:attribute name="enabled"
        type="boolean"
        default="false"
        use="optional"
     />
    <xs:attribute name="value"
        type="UInt8Type"
        use="optional"
     />
    <xs:attribute name="message"
        type="string"
        use="optional"
     />
</xs:complexType>

子元素

元素 类型 说明
测 井 ChannelLoggingType 定义支持通道的日志文件的属性,例如其容量以及日志文件是顺序的还是循环的。
出版 ChannelPublishingType 定义通道使用的会话的日志记录属性。 只有调试和分析通道以及使用自定义隔离的通道可以为其会话指定日志记录属性。

属性

名称 类型 说明
access 字符串 安全描述符定义语言 (SDDL) 控制对支持通道的日志文件的访问描述符。 如果 隔离 属性设置为“应用程序”或“系统”,则访问描述符控制对文件的读取访问权限, (写入权限将被忽略) 。 如果 隔离 属性设置为 Custom,则访问描述符控制对通道的写入访问权限和对文件的读取访问权限。
chid 令牌 唯一标识提供程序定义或导入的通道列表中的通道的标识符。 在事件中引用通道时使用此值。 如果未指定通道标识符,请使用通道的名称在事件定义中引用此通道。
enabled boolean 确定是否启用通道。 设置为 true 以允许记录到通道;否则为 false。 默认值为 false , () 禁用日志记录。
由于调试和分析通道类型是大容量通道,因此应仅在调查写入该通道的组件时启用通道;否则,通道应保持禁用状态。
每次启用调试和分析通道时,服务都会从通道中清除事件。
隔离 字符串 隔离值定义通道的默认访问权限。 可以指定以下值之一:
  • 应用程序
  • 系统
  • 自定义
默认隔离为 Application。 使用 SDDL) (显示 应用程序 的默认权限:
文本
            L"O:BAG:SYD:"
            L"(A;;0xf0007;;;SY)"                // local system               (read, write, clear)
            L"(A;;0x7;;;BA)"                    // built-in admins            (read, write, clear)
            L"(A;;0x7;;;SO)"                    // server operators           (read, write, clear)
            L"(A;;0x3;;;IU)"                    // INTERACTIVE LOGON          (read, write)
            L"(A;;0x3;;;SU)"                    // SERVICES LOGON             (read, write)
            L"(A;;0x3;;;S-1-5-3)"               // BATCH LOGON                (read, write)
            L"(A;;0x3;;;S-1-5-33)"              // write restricted service   (read, write)
            L"(A;;0x1;;;S-1-5-32-573)";         // event log readers          (read) 

系统的默认权限 (使用 SDDL) 显示:

文本
            L"O:BAG:SYD:"
            L"(A;;0xf0007;;;SY)"                // local system             (read, write, clear)
            L"(A;;0x7;;;BA)"                    // built-in admins          (read, write, clear)
            L"(A;;0x3;;;BO)"                    // backup operators         (read, write)
            L"(A;;0x5;;;SO)"                    // server operators         (read, clear) 
            L"(A;;0x1;;;IU)"                    // INTERACTIVE LOGON        (read)
            L"(A;;0x3;;;SU)"                    // SERVICES LOGON           (read, write)
            L"(A;;0x1;;;S-1-5-3)"               // BATCH LOGON              (read)
            L"(A;;0x2;;;S-1-5-33)"              // write restricted service (write)
            L"(A;;0x1;;;S-1-5-32-573)";         // event log readers        (read)

自定义隔离的默认权限与应用程序相同。

指定 应用程序 隔离的通道使用相同的 ETW 会话。 系统隔离也是如此。 但是,如果指定 “自定义 隔离”,则服务会为通道创建单独的 ETW 会话。 使用 自定义 隔离可以控制通道和后备文件的访问权限。 由于只有 64 个 ETW 会话可用,因此应限制 使用自定义 隔离。

message 字符串

通道的本地化显示名称。 消息字符串引用清单的 stringTable 部分中的本地化字符串。

name anyURI

信道的名称。 该名称在提供程序使用的通道列表中必须是唯一的。 命名通道的约定是将通道类型追加到提供程序的名称。 例如, 如果提供商的名称是 Company-Product-Component,并且你正在定义一个操作通道,则名称将是 Company-Product-Component/Operational。

通道名称必须少于 255 个字符,并且不能包含以下字符:“>”、“<”、“&”、“”、“|”、“\”、“:”、“?”、“*”或代码小于 31 的字符。

符号 CSymbolType

用于引用应用程序中的通道的符号。 消息编译器 (MC.exe) 使用 符号为编译器生成的头文件中的通道创建常量。 如果未指定符号,编译器将生成名称。

type 字符串

标识通道的类型。 可以指定以下类型之一:

  • 管理员
  • 可运行
  • 分析
  • 调试

管理员类型通道支持面向最终用户、管理员和支持人员的事件。 写入管理员通道的事件应具有定义完善的解决方案,管理员可以根据该解决方案进行操作。管理事件的一个示例是应用程序无法连接到打印机时发生的事件。 这些事件要么记录良好,要么具有与之关联的消息,该消息为读者提供纠正问题必须采取哪些操作的直接说明。

操作类型通道支持用于分析和诊断问题或事件的事件。 它们可用于根据问题或发生的事件触发工具或任务。 例如,在系统中添加或移除打印机时发生的事件就是一个操作事件。

分析类型通道支持大量发布的事件。 它们描述程序操作并指示用户无法处理的问题。

调试类型通道支持仅由开发人员用来诊断调试问题的事件。

默认情况下,分析和调试通道处于禁用状态,应仅启用以确定问题原因。 例如,可以启用通道,运行导致该问题的方案,禁用通道,然后查询事件。 请注意,启用通道会清除现有事件的通道。 如果分析和调试通道使用循环支持文件,则必须禁用该通道来查询其事件。

所有管理员通道都使用相同的 ETW 会话;操作通道也是如此。 但是,每个分析和调试通道都使用单独的 ETW 会话,这是仅在需要时启用这些通道类型的另一个原因, (有有限数量的 ETW 会话可用) 。

value UInt8Type

一个数字标识符,用于唯一标识提供程序定义的通道列表中的通道。 如果未指定,则消息编译器会分配值。

备注

如果通道的名称遵循通道命名约定,则 Windows 事件查看器将使用反斜杠后面的字符串列出通道。 例如,如果通道名称为 Company-Product-Component/Operational,则事件查看器将在 Company-Product-Component 提供程序下将通道列为 Operational。 否则,整个通道名称将显示在提供程序下。 如果已提供,则使用本地化的显示名称。

要求

要求
最低受支持的客户端
Windows Vista [仅限桌面应用]
最低受支持的服务器
Windows Server 2008 [仅限桌面应用]

`