定义任务和操作码
提供程序使用任务和操作码对事件进行逻辑分组。 分组事件可帮助使用者仅查询包含特定任务和操作码组合的事件。 通常,使用任务来标识提供程序的主要组件,例如网络或数据库组件。 然后,可以使用操作码来标识组件执行的操作,例如网络组件的发送和接收操作。 如果只有一个组件,则可以使用任务来反映组件中的主要操作(例如连接或断开连接),并使用 opcode 来反映操作中的活动,例如读取注册表。 也可以在不指定任务的情况下使用 opcode。 如何使用任务和操作码对使用者的事件进行分组完全由你决定。
若要定义任务,请使用 task 元素。 若要定义操作代码,请使用 opcode 元素。 最多可以指定 228 个操作码。 任务 值 必须大于 0。 操作码的范围必须为 10 到 239。 Winmeta.xml 文件定义可以使用的常见操作,而不是定义自己的操作。
以下示例演示如何定义多个任务和操作代码。
<instrumentationManifest
xmlns="http://schemas.microsoft.com/win/2004/08/events"
xmlns:win="http://manifests.microsoft.com/win/2004/08/windows/events"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
<instrumentation>
<events>
<provider name="Microsoft-Windows-SampleProvider"
guid="{1db28f2e-8f80-4027-8c5a-a11f7f10f62d}"
symbol="PROVIDER_GUID"
resourceFileName="<path to the exe or dll that contains the metadata resources>"
messageFileName="<path to the exe or dll that contains the string resources>"
message="$(string.Provider.Name)">
. . .
<tasks>
<task name="Disconnect"
symbol="TASK_DISCONNECT"
value="1"
message="$(string.Task.Disconnect)"/>
<task name="Connect"
symbol="TASK_CONNECT"
value="2"
message="$(string.Task.Connect)">
</task>
<task name="Validate"
symbol="TASK_VALIDATE"
value="3"
message="$(string.Task.Validate)">
</task>
</tasks>
<opcodes>
<opcode name="Initialize"
symbol="OPCODE_INITIALIZE"
value="12"
message="$(string.Opcode.Initialize)"/>
<opcode name="Cleanup"
symbol="OPCODE_CLEANUP"
value="13"
message="$(string.Opcode.Cleanup)"/>
</opcodes>
. . .
</provider>
</events>
</instrumentation>
<localization>
<resources culture="en-US">
<stringTable>
<string id="Provider.Name" value="Sample Provider"/>
<string id="Task.Disconnect" value="Disconnect"/>
<string id="Task.Connect" value="Connect"/>
<string id="Task.Connect.ReadRegistry" value="ReadRegistry"/>
<string id="Task.Validate" value="Connect"/>
<string id="Task.Validate.GetRules" value="GetRules"/>
<string id="Opcode.Initialize" value="Initialize"/>
<string id="Opcode.Cleanup" value="Cleanup"/>
</stringTable>
</resources>
</localization>
</instrumentationManifest>