<?xml version="1.0" encoding="UTF-8"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v3" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<assemblyIdentity buildType="release" language="neutral" name="Microsoft-Windows-Sysprep-Instrumentation" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" version="6.1.7601.17514" versionScope="nonSxS"></assemblyIdentity>
	<registryKeys>
		<!-- Sysprep Provider -->
		<registryKey keyName="HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\AutoLogger\Microsoft-Windows-Setup\{75EBC33E-77B8-4ba8-9474-4F4A9DB2F5C6}">
			<registryValue name="Enabled" value="1" valueType="REG_DWORD"></registryValue>
			<registryValue name="EnableLevel" value="4" valueType="REG_DWORD"></registryValue>
		</registryKey>
	</registryKeys>
	<instrumentation xmlns:win="http://manifests.microsoft.com/win/2004/08/windows/events" xmlns:xs="http://www.w3.org/2001/XMLSchema">
		<events xmlns:auto-ns1="urn:schemas-microsoft-com:asm.v3" xmlns="http://schemas.microsoft.com/win/2004/08/events">
			<!--
           * Microsoft Windows Sysprep Provider *
           Implemented in sysprep.lib.  The data necessary to decode the events
           generated by this provider can always be found in winsetup.dll.
      -->
			<provider guid="{75EBC33E-77B8-4ba8-9474-4F4A9DB2F5C6}" message="$(string.Sysprep.ProviderMessage)" messageFileName="%SystemRoot%\system32\sysprep\sysprep.exe" name="Microsoft-Windows-Sysprep" resourceFileName="%SystemRoot%\system32\sysprep\sysprep.exe" symbol="MicrosoftWindowsSysprep">
				<channels>
					<channel chid="chaSysprepAnalytic" name="Microsoft-Windows-Sysprep/Analytic" type="Analytic"></channel>
					<!-- This is the official Setup channel as seen in the Event Viewer. -->
					<importChannel chid="chaSetup" name="Setup"></importChannel>
				</channels>
				<keywords>
					<!-- Events with the Performance keyword come in opcode=win:start/win:stop pairs 
               with the same task name.  An individual thread will complete once instance of
               a task with a particular type before starting a new one. -->
					<keyword mask="0x00000001" message="$(string.Performance.KeywordMessage)" name="keyPerformance"></keyword>
					<!-- Sysprep -->
					<keyword mask="0x00000002" message="$(string.Sysprep.KeywordMessage)" name="keySysprep"></keyword>
				</keywords>
				<templates>
					<template tid="tidRunRegistryDlls">
						<data inType="win:UnicodeString" name="BasePath"></data>
						<data inType="win:UnicodeString" name="Phase"></data>
					</template>
					<template tid="tidCallSysprepFunction">
						<data inType="win:UnicodeString" name="DllName"></data>
						<data inType="win:AnsiString" name="FunctionName"></data>
					</template>
					<template tid="tidErrorCodeResult">
						<data inType="win:UInt32" name="ErrorCode"></data>
					</template>
				</templates>
				<tasks>
					<task eventGUID="{B2F1C8AA-2B6A-4140-AD69-AC1A794DFACF}" message="$(string.RunRegistryDlls.TaskMessage)" name="tskRunRegistryDlls" value="1000"></task>
					<task eventGUID="{799DE0B7-0599-45bf-B601-B4B7CECB7B0B}" message="$(string.CallSysprepFunction.TaskMessage)" name="tskCallSysprepFunction" value="2000"></task>
				</tasks>
				<events>
					<!-- Official Setup Channel (Will show up in the Event Viewer) Events -->
					<!-- Sysprep Analytic Events -->
					<!-- RunRegistryDlls -->
					<event channel="chaSysprepAnalytic" keywords="keyPerformance keySysprep" level="win:Informational" message="$(string.RunRegistryDlls.StartMessage)" opcode="win:Start" symbol="RunRegistryDllsStart" task="tskRunRegistryDlls" template="tidRunRegistryDlls" value="1001"></event>
					<event channel="chaSysprepAnalytic" keywords="keyPerformance keySysprep" level="win:Informational" message="$(string.RunRegistryDlls.StopMessage)" opcode="win:Stop" symbol="RunRegistryDllsStop" task="tskRunRegistryDlls" template="tidErrorCodeResult" value="1002"></event>
					<!-- CallSysprepFunction -->
					<event channel="chaSysprepAnalytic" keywords="keyPerformance keySysprep" level="win:Informational" message="$(string.CallSysprepFunction.StartMessage)" opcode="win:Start" symbol="CallSysprepFunctionStart" task="tskCallSysprepFunction" template="tidCallSysprepFunction" value="2001"></event>
					<event channel="chaSysprepAnalytic" keywords="keyPerformance keySysprep" level="win:Informational" message="$(string.CallSysprepFunction.StopMessage)" opcode="win:Stop" symbol="CallSysprepFunctionStop" task="tskCallSysprepFunction" template="tidErrorCodeResult" value="2002"></event>
				</events>
			</provider>
		</events>
	</instrumentation>
	<localization>
		<resources culture="en-US">
			<stringTable>
				<!-- Keywords -->
				<string id="Performance.KeywordMessage" value="Performance"></string>
				<string id="Sysprep.KeywordMessage" value="Sysprep"></string>
				<!-- Providers -->
				<string id="Sysprep.ProviderMessage" value="Microsoft-Windows-Sysprep"></string>
				<!-- RunRegistryDlls -->
				<string id="RunRegistryDlls.TaskMessage" value="RunRegistryDlls"></string>
				<string id="RunRegistryDlls.StartMessage" value="Executing sysprep providers from registry location &quot;%1&quot; during %2."></string>
				<string id="RunRegistryDlls.StopMessage" value="Finished executing sysprep providers with status %1."></string>
				<!-- Call sysprep function -->
				<string id="CallSysprepFunction.TaskMessage" value="Call External Provider Function"></string>
				<string id="CallSysprepFunction.StartMessage" value="Calling external function &quot;%2&quot; from &quot;%1&quot;."></string>
				<string id="CallSysprepFunction.StopMessage" value="External function returned with status %1."></string>
			</stringTable>
		</resources>
	</localization>
	<cbb:debuggingInfo xmlns:cbb="urn:schemas-microsoft-com:asm.internal.v1">
		<cbb:sourceManifest sourcePath="%basedir%\base\ntsetup\opktools\sysprep\man\microsoft-windows-sysprep-instrumentation.man"></cbb:sourceManifest>
	</cbb:debuggingInfo>
</assembly>
