﻿<?xml version='1.0' encoding='utf-8' standalone='yes'?>
<assembly
    xmlns="urn:schemas-microsoft-com:asm.v3"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    manifestVersion="1.0"
    >
  <localization>
    <resources culture="en-US">
      <stringTable>
        <string
            id="ProviderName"
            value="Eco-Asmts-HAS-FileOrg"
            />
        <!-- 
          The following strings are used to format ETW events:

          Template elements are mapped to the format string using the Message Compiler format
          which use the following formation to insert a element into the message string. 
          This is called an 'insert specifier', or simply 'insert' for short.

              %n[!format_specifier!] 

          The '%n' portion of the specifier slects the data element from the template.

          The optional format specifier is  'wsprintf' format specifier and
          is used format the data before it is instereted into the message string.  
          Note that this is not the C-LIbrary format specifier, the wsprintf
          is different subset and has its own rules.  Please see the MSDN
          documentation for the wsprintf API.

          Each insert is an entry in the arguments array in the FormatMessage function. 
          The value of n can be a number between 1 and 99. The format specifier is optional. 
          If no value is specified, the default is !s!.  The format specifier can use * for 
          either the precision or the width. When specified, they consume inserts 
          numbered n+1 and n+2.

              %0   Terminates a message text line without a trailing newline character. This can be 
                   used to build a long line or terminate a prompt message without a trailing newline 
                   character. 
              %n   Inserts the n'th numbereed element from the data template.  This element 
                   can include an optional wsprintf style format specifier like this
                   %n!format_specifier!
              %.   Generates a single period. This can be used to display a period at the beginning 
                   of a line, which would otherwise terminate the message text. 
              %!   Generates a single exclamation point. This can be used to specify an exclamation 
                   point immediately after an insert. 
              %%   Generates a single percent sign. 
              %\   Generates a hard line break when it occurs at the end of a line. This can be used 
                   with FormatMessage to ensure that the message fits a certain width. 
              %b   Generates a space character. This can be used to ensure an appropriate number of 
                   trailing spaces on a line. 
              %r   Generates a hard carriage return without a trailing newline character.           
        -->
        <string
            id="Event.Win32ErrorEv"
            value="ERROR: %3"
            />
        <string
            id="Event.COMErrorEv"
            value="COM ERROR: %4 %6"
            />
        <string
            id="Event.InternalErrorEv"
            value="ERROR: %2"
            />
        <string
            id="Event.FailingHresultErrorEv"
            value="ERROR: %1 %3"
            />
        <string
            id="Event.AppStartEv"
            value="Application Start: %1"
            />
        <string
            id="Event.AppParametersEv"
            value="Application Command Line %2"
            />
        <string
            id="Event.AppStopEv"
            value="Application Stop: %1"
            />
        <string
            id="Event.Test1Ev"
            value="%1 %2 %3 %4"
            />
        <string
            id="Event.AnsiTextMessageEv"
            value="%2"
            />
        <string
            id="Event.BeginPhaseEv"
            value="%1:%3"
            />
        <string
            id="Event.EndPhaseEv"
            value="%1"
            />
        <string
            id="Event.MainWatchDogTimeout"
            value="Main watch dog timeout - terminating process"
            />
        <string
            id="Event.AssessmentWatchDogTimeout"
            value="Assessment watch dog timeout - terminating process"
            />
        <string
            id="Event.ShortWatchDogTimeout"
            value="Short watch dog timeout - terminating process"
            />
        <string
            id="Event.BeginOperationEv"
            value="%1:%3"
            />
        <string
            id="Event.EndOperationEv"
            value="%1"
            />
        <string
            id="Event.MarkEv"
            value="%1:%3"
            />
      </stringTable>
    </resources>
  </localization>
  <instrumentation>
    <events
        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"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        >
      <provider
          guid="{98590BDC-CA72-41ab-881D-09692DCF8349}"
          message="$(string.ProviderName)"
          messageFileName="FileOrg.EXE"
          name="Eco-Asmts-HAS-FileOrg"
          resourceFileName="FileOrg.EXE"
          symbol="FILEORG_APP_ETW_PROVIDER"
          >
        <channels>
          <channel
              chid="operationalChannel"
              enabled="true"
              isolation="Application"
              name="Eco-Asmts-HAS-FileOrg/Operational"
              symbol="RemoteAssistance_Operational"
              type="Operational"
              >Tracing information channel.</channel>
          <channel
              chid="tracingChannel"
              isolation="Application"
              name="Eco-Asmts-HAS-FileOrg/Tracing"
              symbol="RemoteAssistance_Tracing"
              type="Analytic"
              >Trace level information channel.</channel>
          <importChannel
              chid="APPLICATION"
              name="Application"
              />
        </channels>
        <!-- 
          Note that all the strings in these templates are logged with a
          terminating null character.  This means the consumer can get 
          pointers to these strings and use them directly.   The consumer
          does not need to copy them to a buffer, then null terminate them.

          All of the strings are prefixed with a -size- of the string.
          This is the length of the string + 1 for the terminating NULL.  This
          size is in characters, not BYTEs.

          This means that the string sizes in these events will ALWAYS be
          greater than zero.  If you see zero in a size, then it is a logging
          error, but consumers should handle this case anyway. 
          -->
        <templates>
          <template tid="tid_Win32Error">
            <data
                inType="win:UInt32"
                name="Win32Error"
                />
            <data
                inType="win:UInt16"
                name="CantMsgSize"
                />
            <data
                inType="win:UnicodeString"
                length="CantMsgSize"
                name="CantMsg"
                />
          </template>
          <template tid="tid_COMError">
            <data
                inType="win:HexInt32"
                name="FailingHresult"
                />
            <data
                inType="win:GUID"
                name="FailingInterfaceCLSID"
                />
            <data
                inType="win:UInt16"
                name="SourceSize"
                />
            <data
                inType="win:UnicodeString"
                length="SourceSize"
                name="Source"
                />
            <data
                inType="win:UInt16"
                name="InfterfaceSize"
                />
            <data
                inType="win:UnicodeString"
                length="InfterfaceSize"
                name="Interface"
                />
            <data
                inType="win:UInt16"
                name="ErrorMsgSize"
                />
            <data
                inType="win:UnicodeString"
                length="ErrorMsgSize"
                name="ErrorMsg"
                />
            <data
                inType="win:UInt16"
                name="CantMsgSize"
                />
            <data
                inType="win:UnicodeString"
                length="CantMsgSize"
                name="CantMsg"
                />
          </template>
          <template tid="tid_InternalError">
            <data
                inType="win:UInt16"
                name="ErrorMsgSize"
                />
            <data
                inType="win:UnicodeString"
                length="ErrorMsgSize"
                name="ErrorMsg"
                />
          </template>
          <template tid="tid_FailingHresult">
            <data
                inType="win:HexInt32"
                name="FailingHresult"
                />
            <data
                inType="win:UInt16"
                name="ErrorMsgSize"
                />
            <data
                inType="win:UnicodeString"
                length="ErrorMsgSize"
                name="ErrorMsg"
                />
            <data
                inType="win:UInt16"
                name="CantMsgSize"
                />
            <data
                inType="win:UnicodeString"
                length="CantMsgSize"
                name="CantMsg"
                />
          </template>
          <template tid="tid_AppStart">
            <data
                inType="win:FILETIME"
                name="StartTimeOfDay"
                />
            <data
                inType="win:GUID"
                name="AppLoggerId"
                />
          </template>
          <template tid="tid_AppParameters">
            <data
                inType="win:UInt16"
                name="CommandLineSize"
                />
            <data
                inType="win:UnicodeString"
                length="CommandLineSize"
                name="CommandLine"
                />
          </template>
          <template tid="tid_AppStop">
            <data
                inType="win:UInt32"
                name="ExitCode"
                />
          </template>
          <template tid="tid_Test1">
            <data
                inType="win:UInt32"
                name="TestV1"
                />
            <data
                inType="win:UInt32"
                name="TestV2"
                />
            <data
                inType="win:UInt32"
                name="TestV3"
                />
            <data
                inType="win:UnicodeString"
                name="TestV4"
                />
          </template>
          <template tid="tid_AnsiTextMessage">
            <data
                inType="win:UInt16"
                name="MessageSize"
                />
            <data
                inType="win:AnsiString"
                length="MessageSize"
                name="Message"
                />
          </template>
          <template tid="tid_BeginPhase">
            <data
                inType="win:UInt16"
                name="PhaseID"
                />
            <data
                inType="win:UInt16"
                name="DescriptionSize"
                />
            <data
                inType="win:UnicodeString"
                length="DescriptionSize"
                name="Description"
                />
          </template>
          <template tid="tid_EndPhase">
            <data
                inType="win:UInt16"
                name="PhaseID"
                />
          </template>
          <template tid="tid_BeginOperation">
            <data
                inType="win:UInt32"
                name="OperationID"
                />
            <data
                inType="win:UInt16"
                name="DescriptionSize"
                />
            <data
                inType="win:UnicodeString"
                length="DescriptionSize"
                name="Description"
                />
            <data
                inType="win:UInt16"
                name="BlobByteSize"
                />
            <data
                inType="win:Binary"
                length="BlobByteSize"
                name="Blob"
                />
          </template>
          <template tid="tid_EndOperation">
            <data
                inType="win:UInt32"
                name="PhaseID"
                />
            <data
                inType="win:UInt16"
                name="DescriptionSize"
                />
            <data
                inType="win:UnicodeString"
                length="DescriptionSize"
                name="Description"
                />
            <data
                inType="win:UInt16"
                name="BlobByteSize"
                />
            <data
                inType="win:Binary"
                length="BlobByteSize"
                name="Blob"
                />
          </template>
          <template tid="tid_Mark">
            <data
                inType="win:UInt32"
                name="MarkID"
                />
            <data
                inType="win:UInt16"
                name="DescriptionSize"
                />
            <data
                inType="win:UnicodeString"
                length="DescriptionSize"
                name="Description"
                />
            <data
                inType="win:UInt16"
                name="BlobByteSize"
                />
            <data
                inType="win:Binary"
                length="BlobByteSize"
                name="Blob"
                />
          </template>
          <template tid="tid_NoPayload"/>
        </templates>
        <tasks>
          <task
              name="Application"
              symbol="Application"
              value="1"
              />
        </tasks>
        <events>
          <!-- 
              This is a test event used for testing the logger
              and related functionality
             -->
          <event
              level="win:Informational"
              message="$(string.Event.Test1Ev)"
              opcode="win:Info"
              symbol="Test1Ev"
              task="Application"
              template="tid_Test1"
              value="0"
              version="0"
              />
          <!-- 
              This event is used to log the start (beginning) of the 
              application
             -->
          <event
              channel="operationalChannel"
              level="win:LogAlways"
              message="$(string.Event.AppStartEv)"
              opcode="win:Start"
              symbol="AppStartEv"
              task="Application"
              template="tid_AppStart"
              value="1"
              version="1"
              />
          <!-- 
              This event is used to log the start (beginning) of the 
              application
             -->
          <event
              channel="operationalChannel"
              level="win:LogAlways"
              message="$(string.Event.AppParametersEv)"
              opcode="win:Info"
              symbol="AppParametersEv"
              task="Application"
              template="tid_AppParameters"
              value="2"
              version="0"
              />
          <!-- 
            This event is used to log the end (exit) of the 
            application
           -->
          <event
              channel="operationalChannel"
              level="win:LogAlways"
              message="$(string.Event.AppStopEv)"
              opcode="win:Stop"
              symbol="AppStopEv"
              task="Application"
              template="tid_AppStop"
              value="3"
              version="0"
              />
          <!-- 
            This event is used to log the initial occurance of a 
            a Win32 error
           -->
          <event
              channel="operationalChannel"
              level="win:LogAlways"
              message="$(string.Event.Win32ErrorEv)"
              opcode="win:Info"
              symbol="Win32ErrorEv"
              task="Application"
              template="tid_Win32Error"
              value="4"
              version="0"
              />
          <!-- 
            This event is used to log the initial occurance of a 
            a COM interface error
           -->
          <event
              channel="operationalChannel"
              level="win:LogAlways"
              message="$(string.Event.COMErrorEv)"
              opcode="win:Info"
              symbol="COMErrorEv"
              task="Application"
              template="tid_COMError"
              value="5"
              version="0"
              />
          <!-- 
            This event is used to log the initial occurance of an
            internal error
           -->
          <event
              channel="operationalChannel"
              level="win:LogAlways"
              message="$(string.Event.InternalErrorEv)"
              opcode="win:Info"
              symbol="InternalErrorEv"
              task="Application"
              template="tid_InternalError"
              value="6"
              version="0"
              />
          <!-- 
            This event is used to log the occurance of a error indicated
            by a failing HRESULT.  This event is for errors that are reported
            by non COM interfaces that return HRESULTS instead of Win32 errors.
           -->
          <event
              channel="operationalChannel"
              level="win:LogAlways"
              message="$(string.Event.FailingHresultErrorEv)"
              opcode="win:Info"
              symbol="FailingHresultErrorEv"
              task="Application"
              template="tid_FailingHresult"
              value="7"
              version="0"
              />
          <!-- 
            This event is what is used for the Log_Text() macro defined
            in Logging.h
           -->
          <event
              level="win:Informational"
              message="$(string.Event.AnsiTextMessageEv)"
              opcode="win:Info"
              symbol="AnsiTextMessageEv"
              task="Application"
              template="tid_AnsiTextMessage"
              value="8"
              version="0"
              />
          <!--
            This event is used to log the beginning of an applicatno Phase
           -->
          <event
              channel="operationalChannel"
              level="win:Informational"
              message="$(string.Event.BeginPhaseEv)"
              opcode="win:Info"
              symbol="BeginPhaseEv"
              task="Application"
              template="tid_BeginPhase"
              value="9"
              version="0"
              />
          <!--
            This event is used to log the end of an applicatno Phase
           -->
          <event
              channel="operationalChannel"
              level="win:Informational"
              message="$(string.Event.EndPhaseEv)"
              opcode="win:Info"
              symbol="EndPhaseEv"
              task="Application"
              template="tid_EndPhase"
              value="10"
              version="0"
              />
          <!--
          This event is used to log when the main watch dog timer times out
          -->
          <event
              level="win:Informational"
              message="$(string.Event.MainWatchDogTimeout)"
              opcode="win:Info"
              symbol="MainWatchDogTimeoutEv"
              task="Application"
              template="tid_NoPayload"
              value="11"
              version="0"
              />
          <!--
          This event is used to log when the assessment watch dog timer times out
          -->
          <event
              level="win:Informational"
              message="$(string.Event.AssessmentWatchDogTimeout)"
              opcode="win:Info"
              symbol="AssessmentWatchDogTimeoutEv"
              task="Application"
              template="tid_NoPayload"
              value="12"
              version="0"
              />
          <!--
          This event is used to log when the short watch dog timer times out
          -->
          <event
              level="win:Informational"
              message="$(string.Event.ShortWatchDogTimeout)"
              opcode="win:Info"
              symbol="ShortWatchDogTimeoutEv"
              task="Application"
              template="tid_NoPayload"
              value="13"
              version="0"
              />
          <!--
            This event is used to log the beginning of a measured operation
           -->
          <event
              channel="operationalChannel"
              level="win:Informational"
              message="$(string.Event.BeginOperationEv)"
              opcode="win:Info"
              symbol="BeginOperationEv"
              task="Application"
              template="tid_BeginOperation"
              value="14"
              version="0"
              />
          <!--
            This event is used to log the end of a measured operation
           -->
          <event
              channel="operationalChannel"
              level="win:Informational"
              message="$(string.Event.EndOperationEv)"
              opcode="win:Info"
              symbol="EndOperationEv"
              task="Application"
              template="tid_EndOperation"
              value="15"
              version="0"
              />
          <!--
            This event is used to log the end of a measured operation
           -->
          <event
              channel="operationalChannel"
              level="win:Informational"
              message="$(string.Event.MarkEv)"
              opcode="win:Info"
              symbol="MarkEv"
              task="Application"
              template="tid_Mark"
              value="16"
              version="0"
              />
        </events>
      </provider>
    </events>
    <counters xmlns="http://schemas.microsoft.com/win/2005/12/counters"/>
  </instrumentation>
</assembly>
