﻿<instrumentationManifest xsi:schemaLocation="http://schemas.microsoft.com/win/2004/08/events eventman.xsd" xmlns:win="http://manifests.microsoft.com/win/2004/08/windows/events" xmlns="http://schemas.microsoft.com/win/2004/08/events" xml="http://www.w3.org/XML/1998/namespace" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <instrumentation>
        <events>
            <provider name="Nvidia Storage" guid="{C7EC6F5A-F6D1-4b8f-B178-BFCE7C8A5101}" symbol="ETWProviderGUID"
                      resourceFileName="%SystemRoot%\System32\drivers\nvstor64.sys" messageFileName="%SystemRoot%\System32\drivers\nvstor64.sys">
                <channels>
                    <importChannel name="System" chid="SYSTEM" />
                    <channel name ="Operational" chid="DIAGNOSTIC" type="Operational"
                        symbol="A_CHANNEL" isolation="System" enabled="true" >
                    </channel>
                    <channel name ="Debug" chid="DEBUG" type="Debug"
                        symbol="DEBUG_CHANNEL" isolation="System" enabled="true" >
                        <logging>
                            <maxSize>104857600</maxSize>
                        </logging>
                        <publishing>
                            <clockType>QPC</clockType>
                            <level>4</level>
                            <latency>3600</latency>
                        </publishing>
                    </channel>
                </channels>
                <keywords>
                    <keyword name="Device" symbol="DEVICE_KEYWORD" mask="0x1" />
                    <keyword name="Message" symbol="MSG_KEYWORD" mask="0x2" />
                </keywords>
                <templates>
                    <template tid="tid_simple_string">
                        <data name="String" inType="win:UnicodeString" outType="xs:string" />
                    </template>
                    <template tid="tid_simple_status">
                        <data name="Object" inType="win:UInt64" outType="win:HexInt64" />
                        <data name="Status" inType="win:UInt32" outType="win:HexInt32" />
                    </template>
                    <template tid="tid_debug_info">
                        <data name="PortNumber" inType="win:UInt8" outType="xs:unsignedByte" />
                        <data name="Lun" inType="win:UInt8" outType="xs:unsignedByte" />
                        <data name="ModelNum" inType="win:UnicodeString" outType="xs:string" length="40" />
                        <data name="DeviceFlags" inType="win:UInt64" outType="win:HexInt64" />
                        <data name="PortFlags" inType="win:UInt32" outType="win:HexInt32" />
                        <data name="Status" inType="win:UInt32" outType="win:HexInt32" />
                    </template>
                    <template tid="tid_log_error">
                        <data name="Device" inType="win:UInt64" outType="win:HexInt64" />
                        <data name="Model Number" inType="win:UnicodeString" outType="xs:string" />
                        <data name="Firmware Version" inType="win:UnicodeString" outType="xs:string" />
        	        <data name="Serial Number" inType="win:UnicodeString" outType="xs:string" />
                        <data name="Port" inType="win:UInt8" outType="xs:unsignedByte" />
                    </template>
                </templates>
                <events>
                    <event value="1" symbol="DebugInfo" template="tid_debug_info" opcode="win:Info" channel="DEBUG" level="win:Verbose" message="" keywords="Device" />
                    <event value="2" symbol="DebugMsg" opcode="win:Info" channel="DEBUG" template="tid_simple_string" level="win:Verbose" message="" keywords="Message" />
                    <event value="3" symbol="ControllerMsg" opcode="win:Info" channel="DIAGNOSTIC" template="tid_simple_status" level="win:Informational" message="" />
                    <event value="4" symbol="PortMsg" opcode="win:Info" channel="DIAGNOSTIC" template="tid_simple_status" level="win:Informational" message="" />
                    <event value="5" symbol="DeviceMsg" opcode="win:Info" channel="DIAGNOSTIC" template="tid_simple_status" level="win:Informational" message="" />
                    <event value="6" symbol="RequestMsg" opcode="win:Info" channel="DIAGNOSTIC" template="tid_simple_status" level="win:Informational" message="" />
                    
                    <event value="50" symbol="INVALID" opcode="win:Info" channel="SYSTEM" template="tid_log_error" level="win:Error" message="$(mc.NVSTOR_SYSLOG_CRC_ERROR)" />
                    <event value="51" symbol="DATA_ERROR" opcode="win:Info" channel="SYSTEM" template="tid_log_error" level="win:Error" message="$(mc.NVSTOR_SYSLOG_DATA_ERROR)" />
                    <event value="52" symbol="COMMAND_ABORT" opcode="win:Info" channel="SYSTEM" template="tid_log_error" level="win:Error" message="$(mc.NVSTOR_SYSLOG_COMMAND_ABORT)" />
                    <event value="53" symbol="ILLEGAL_REQUEST" opcode="win:Info" channel="SYSTEM" template="tid_log_error" level="win:Warning" message="$(mc.NVSTOR_SYSLOG_ILLEGAL_REQUEST)" />
                    <event value="54" symbol="DEVICE_BUSY" opcode="win:Info" channel="SYSTEM" template="tid_log_error" level="win:Warning" message="$(mc.NVSTOR_SYSLOG_DEVICE_BUSY)" />
                    <event value="55" symbol="DEVICE_REMOVED" opcode="win:Info" channel="SYSTEM" template="tid_log_error" level="win:Error" message="$(mc.NVSTOR_SYSLOG_DEVICE_REMOVED)" />
                    <event value="56" symbol="CANCELLED" opcode="win:Info" channel="SYSTEM" template="tid_log_error" level="win:Warning" message="$(mc.NVSTOR_SYSLOG_CANCELLED)" />
                    <event value="57" symbol="DEVICE_TIMEOUT" opcode="win:Info" channel="SYSTEM" template="tid_log_error" level="win:Error" message="$(mc.NVSTOR_SYSLOG_DEVICE_TIMEOUT)" />
                    <event value="58" symbol="UNKNOWN" opcode="win:Info" channel="SYSTEM" template="tid_log_error" level="win:Error" message="$(mc.NVSTOR_SYSLOG_UNKNOWN)" />
                </events>
            </provider>
        </events>
    </instrumentation>
</instrumentationManifest>

