<?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="10.0.10011.16384" 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>
		<registryKey keyName="HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\AutoLogger\SetupPlatform\{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:ms="http://manifests.microsoft.com/win/2004/08/windows/events" xmlns:win="http://manifests.microsoft.com/win/2004/08/windows/events" xmlns:xs="http://www.w3.org/2001/XMLSchema">
		<events xmlns="http://schemas.microsoft.com/win/2004/08/events" xmlns:auto-ns1="urn:schemas-microsoft-com:asm.v3">
			<!--
           * 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>
					<!-- EVENTS_INCLUDE_MICROSOFT_TELEMETRY -->
					<keyword mask="0x0000800000000000" name="ms:CriticalData"></keyword>
					<keyword mask="0x0000400000000000" name="ms:Measures"></keyword>
					<keyword mask="0x0000200000000000" name="ms:Telemetry"></keyword>
					<keyword mask="0x0000100000000000" name="ms:ReservedKeyword44"></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>
						<data inType="win:UInt32" name="ErrorCode"></data>
					</template>
					<template tid="tidErrorCodeResult">
						<data inType="win:UInt32" name="ErrorCode"></data>
					</template>
					<template tid="tidLoadActionMetadata">
						<data inType="win:UnicodeString" name="ActionFilePath"></data>
					</template>
					<template tid="tidCreateActionList">
						<data inType="win:UnicodeString" name="ComponentName"></data>
					</template>
					<template tid="tidDeleteFile">
						<data inType="win:UnicodeString" name="DirectoryPath"></data>
						<data inType="win:UnicodeString" name="FilePattern"></data>
					</template>
					<template tid="tidDeleteFileResult">
						<data inType="win:UnicodeString" name="DirectoryPath"></data>
						<data inType="win:UnicodeString" name="FilePattern"></data>
						<data inType="win:UInt32" name="ErrorCode"></data>
					</template>
					<template tid="tidDeleteDirectory">
						<data inType="win:UnicodeString" name="DirectoryPath"></data>
					</template>
					<template tid="tidDeleteDirectoryResult">
						<data inType="win:UnicodeString" name="DirectoryPath"></data>
						<data inType="win:UInt32" name="ErrorCode"></data>
					</template>
					<template tid="tidExecuteFullPhase">
						<data inType="win:UnicodeString" name="Phase"></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>
					<task eventGUID="{9DFFCD2E-6380-4249-9139-C5DC3CA9AEAA}" message="$(string.LoadActionMetadata.TaskMessage)" name="tskLoadActionMetadata" value="3000"></task>
					<task eventGUID="{E83C1B67-14A6-4859-B46F-CFB88F0DB5A6}" message="$(string.CreateActionList.TaskMessage)" name="tskCreateActionList" value="4000"></task>
					<task eventGUID="{150390B0-2A95-45D4-A95B-50AB18C43DC5}" message="$(string.DeleteFile.TaskMessage)" name="tskDeleteFile" value="5000"></task>
					<task eventGUID="{4E6EAC7E-74A7-4BED-8AF3-465176A542B4}" message="$(string.DeleteDirectory.TaskMessage)" name="tskDeleteDirectory" value="6000"></task>
					<task eventGUID="{943408EE-D8FE-4B53-A357-52D801BF3194}" message="$(string.ExecuteFullPhase.TaskMessage)" name="tskExecuteFullPhase" value="7000"></task>
				</tasks>
				<events>
					<!-- Official Setup Channel (Will show up in the Event Viewer) Events -->
					<!-- Sysprep Analytic Events -->
					<!-- RunRegistryDlls -->
					<event channel="chaSysprepAnalytic" keywords="keyPerformance keySysprep ms:Measures" 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 ms:Measures" 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 ms:CriticalData" 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 ms:CriticalData" level="win:Informational" message="$(string.CallSysprepFunction.StopMessage)" opcode="win:Stop" symbol="CallSysprepFunctionStop" task="tskCallSysprepFunction" template="tidCallSysprepFunction" value="2002"></event>
					<!-- LoadActionMetadata -->
					<event channel="chaSysprepAnalytic" keywords="keyPerformance keySysprep ms:Measures" level="win:Informational" message="$(string.LoadActionMetadata.StartMessage)" opcode="win:Start" symbol="LoadActionMetadataStart" task="tskLoadActionMetadata" template="tidLoadActionMetadata" value="3001"></event>
					<event channel="chaSysprepAnalytic" keywords="keyPerformance keySysprep ms:Measures" level="win:Informational" message="$(string.LoadActionMetadata.StopMessage)" opcode="win:Stop" symbol="LoadActionMetadataStop" task="tskLoadActionMetadata" template="tidLoadActionMetadata" value="3002"></event>
					<!-- CreateActionList -->
					<event channel="chaSysprepAnalytic" keywords="keyPerformance keySysprep ms:Measures" level="win:Informational" message="$(string.CreateActionList.StartMessage)" opcode="win:Start" symbol="CreateActionListStart" task="tskCreateActionList" template="tidCreateActionList" value="4001"></event>
					<event channel="chaSysprepAnalytic" keywords="keyPerformance keySysprep ms:Measures" level="win:Informational" message="$(string.CreateActionList.StopMessage)" opcode="win:Stop" symbol="CreateActionListStop" task="tskCreateActionList" template="tidCreateActionList" value="4002"></event>
					<!-- DeleteFile -->
					<event channel="chaSysprepAnalytic" keywords="keyPerformance keySysprep ms:Measures" level="win:Informational" message="$(string.DeleteFile.StartMessage)" opcode="win:Start" symbol="DeleteFileStart" task="tskDeleteFile" template="tidDeleteFile" value="5001"></event>
					<event channel="chaSysprepAnalytic" keywords="keyPerformance keySysprep ms:Measures" level="win:Informational" message="$(string.DeleteFile.StopMessage)" opcode="win:Stop" symbol="DeleteFileStop" task="tskDeleteFile" template="tidDeleteFileResult" value="5002"></event>
					<!-- DeleteDirectory -->
					<event channel="chaSysprepAnalytic" keywords="keyPerformance keySysprep ms:Measures" level="win:Informational" message="$(string.DeleteDirectory.StartMessage)" opcode="win:Start" symbol="DeleteDirectoryStart" task="tskDeleteDirectory" template="tidDeleteDirectory" value="6001"></event>
					<event channel="chaSysprepAnalytic" keywords="keyPerformance keySysprep ms:Measures" level="win:Informational" message="$(string.DeleteDirectory.StopMessage)" opcode="win:Stop" symbol="DeleteDirectoryStop" task="tskDeleteDirectory" template="tidDeleteDirectoryResult" value="6002"></event>
					<!-- ExecuteFullPhase -->
					<event channel="chaSysprepAnalytic" keywords="keyPerformance keySysprep ms:Measures" level="win:Informational" message="$(string.ExecuteFullPhase.StartMessage)" opcode="win:Start" symbol="ExecuteFullPhaseStart" task="tskExecuteFullPhase" template="tidExecuteFullPhase" value="7001"></event>
					<event channel="chaSysprepAnalytic" keywords="keyPerformance keySysprep ms:Measures" level="win:Informational" message="$(string.ExecuteFullPhase.StopMessage)" opcode="win:Stop" symbol="ExecuteFullPhaseStop" task="tskExecuteFullPhase" template="tidErrorCodeResult" value="7002"></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>
				<!-- Load action meta-data file -->
				<string id="LoadActionMetadata.TaskMessage" value="Load action meta-data file"></string>
				<string id="LoadActionMetadata.StartMessage" value="Loading meta-data file &quot;%1&quot;."></string>
				<string id="LoadActionMetadata.StopMessage" value="Loading of meta-data file &quot;%1&quot; completed."></string>
				<!-- Pre-process actions for a component -->
				<string id="CreateActionList.TaskMessage" value="Create list of actions for a component"></string>
				<string id="CreateActionList.StartMessage" value="Creating action list for component &quot;%1&quot;."></string>
				<string id="CreateActionList.StopMessage" value="Action list for component &quot;%1&quot; created."></string>
				<!-- Delete file(s) -->
				<string id="DeleteFile.TaskMessage" value="Deleting file(s) of a pattern"></string>
				<string id="DeleteFile.StartMessage" value="Deleting file(s) &quot;%2&quot; from directory &quot;%1&quot;."></string>
				<string id="DeleteFile.StopMessage" value="File deletion of &quot;%2&quot; from directory &quot;%1&quot; returned with status %3."></string>
				<!-- Delete a directory -->
				<string id="DeleteDirectory.TaskMessage" value="Delete a directory"></string>
				<string id="DeleteDirectory.StartMessage" value="Deleting directory &quot;%1&quot;."></string>
				<string id="DeleteDirectory.StopMessage" value="Directory deletion for &quot;%1&quot; returned with status %2."></string>
				<!-- Execute an entire phase -->
				<string id="ExecuteFullPhase.TaskMessage" value="Execute an entire phase"></string>
				<string id="ExecuteFullPhase.StartMessage" value="Starting execution of phase &quot;%1&quot;."></string>
				<string id="ExecuteFullPhase.StopMessage" value="Execution of phase returned status %1."></string>
			</stringTable>
		</resources>
	</localization>
	<cbb:debuggingInfo xmlns:cbb="urn:schemas-microsoft-com:asm.internal.v1">
		<cbb:sourceManifest sourcePath="%sdxmaproot%\onecore\base\ntsetup\opktools\sysprep\man\microsoft-windows-sysprep-instrumentation.man"></cbb:sourceManifest>
	</cbb:debuggingInfo>
</assembly>
