<?xml version="1.0" encoding="utf-8"?>
<nvi name="ShieldWirelessController" title="${{title}}" version="3.25.1.25" versionText="3.25.1.25" timestamp="2022-03-21T23:57:48" disposition="default" hidden="true" installerMin="2.1002.244.2070" hasDriver="true">
	<strings>
		<string name="title" value="NVIDIA SHIELD Wireless Controller Driver"/>
		<string name="SWCInfName" value="nvswcfilter.inf"/>
		<string name="deviceHandlerDllName" value="ShieldWirelessControllerPlugin"/>
		<string name="deviceUtilityDllName" value="NvDeviceUtility"/>
		<string name="InstallFolder" value="${{NvidiaProgramFiles}}\NvContainer"/>
		<string name="InstallFolderX86" value="${{NvidiaProgramFilesX86}}\NvContainer"/>
		<string name="PluginFolder" value="${{InstallFolder}}\plugins\LocalSystem"/>
		<string name="PluginFolderx86" value="${{InstallFolderX86}}\plugins\LocalSystem"/>
		<string name="ContainerPluginFolderName" value="${{NvidiaProgramFilesX86}}\NvContainer\plugins\User"/>
		<string name="NvContainerLSName" value="NvContainerLocalSystem"/>
		<string name="NvContainerNSName" value="NvContainerNetworkService"/>
		<string name="ContainerBinaryName" value="nvcontainer.exe"/>
		<string name="RegistryKey" value="${{NvidiaSoftwareKey}}\NvContainer\NvContainerLocalSystem"/>
		<string name="serviceStopMaxTimeout" value="30000"/>
		<string name="GFEServiceInstallLocation" value="${{NvidiaProgramFiles}}\GeForce Experience Service"/>
		<string name="InstallLocation" value="${{NvidiaProgramFiles}}\SHIELD Wireless Controller"/>
		<string name="serviceName" value="GfExperienceService"/>
		<string name="serviceBinaryName" value="nvwirelesscontroller"/>
		<string name="JunctionPointName" value="SWCPlugin"/>
		<string name="pluginDeleteMaxTimeout" value="10000"/>
	</strings>
	<interfaces>
	</interfaces>
	<dependencies>
		<package type="requires" package="Display.GFExperience"/>
		<package type="requires" package="GFExperience.NvStreamSrv"/>
		<package type="before" package="Display.GFExperience"/>
		<package type="after" package="GFExperience.NvStreamSrv"/>
	</dependencies>
	<description/>
	<filter name="32bit" platform="x86"/>
	<filter name="64bit" platform="amd64"/>
	<constraints>
		<os min="6.0" level="silent"/>
	</constraints>
	<extensions>
	</extensions>
	<properties>
		<bool name="IsGFExperienceComponent" value="true"/>
		<bool name="UsesNvContainer" value="true"/>
		<bool name="MandatoryFeature" value="false"/>
	</properties>
	<manifest>
		<file name="${{deviceUtilityDllName}}64.dll"/>
		<file name="${{deviceHandlerDllName}}64.dll"/>
		<file name="swc_xmega.xmg"/>
		<file name="swc_csr.ota"/>
		<file name="ShieldWirelessController.nvi"/>
		<file name="nvswcfilter.inf"/><file name="nvswcfilter.cat"/><file name="nvswcfilter64.sys"/><file name="nvswcfilter32.sys"/></manifest>
	<phases>
		<standard phase="StopOldServiceWithInstallerNotification" when="install" onError="ignore">
			<controlService name="${{serviceName}}" command="128"/>
		</standard>
		<standard phase="WaitForOldServiceStop" when="install" onError="ignore">
			<waitForService name="${{serviceName}}" state="1" timeOut="20000"/>
		</standard>
		<standard phase="DeleteOldService" when="install" onError="ignore">
			<deleteService name="${{serviceName}}"/>
			<deleteFile target="${{GFEServiceInstallLocation}}\${{serviceName}}.exe"/>
			<deleteFile target="${{GFEServiceInstallLocation}}\${{serviceBinaryName}}.exe"/>
			<deleteFile target="${{GFEServiceInstallLocation}}\ShieldWirelessController.dll"/>
		</standard>
		<standard phase="copy64BitFiles" platform="amd64" onError="ignore">
			<copyFile target="${{InstallLocation}}\${{deviceUtilityDllName}}.dll" source="${{deviceUtilityDllName}}64.dll"/>
		</standard>
		<standard phase="deleteOldShieldControllerPlugin" when="install" onError="ignore">
			<if filter="32bit">
				<deleteFile target="${{PluginFolderx86}}\${{deviceHandlerDllName}}.dll"/>
				<deleteFile target="${{PluginFolderx86}}\${{deviceUtilityDllName}}.dll"/>
			</if>
			<if filter="64bit">
				<deleteFile target="${{PluginFolder}}\${{deviceHandlerDllName}}.dll"/>
				<deleteFile target="${{PluginFolder}}\${{deviceUtilityDllName}}.dll"/>
			</if>
		</standard>
		<standard phase="deleteOldShieldControllerPluginEx" when="install" onError="ignore">
			<deleteFile target="${{InstallLocation}}\${{JunctionPointName}}\_${{deviceHandlerDllName}}.dll"/>
			<deleteFile target="${{InstallLocation}}\${{JunctionPointName}}\${{deviceHandlerDllName}}.dll"/>
		</standard>
		<standard phase="copyShieldControllerPlugin" when="install" condition="MandatoryFeature">
			<copyFile target="${{InstallLocation}}\${{JunctionPointName}}\${{deviceHandlerDllName}}.dll" source="${{deviceHandlerDllName}}64.dll"/>
		</standard>
		<standard phase="copyShieldControllerPlugin" when="install" condition="!MandatoryFeature" onError="ignore">
			<copyFile target="${{InstallLocation}}\${{JunctionPointName}}\_${{deviceHandlerDllName}}.dll" source="${{deviceHandlerDllName}}64.dll"/>
		</standard>
		<standard phase="deleteSWCPlugin" when="uninstall">
			<deleteDirectoryTree target="${{InstallLocation}}\${{JunctionPointName}}" waitForUnlock="${{pluginDeleteMaxTimeout}}"/>
		</standard>
		<standard phase="createJunctionPoint">
			<createDirectory target="${{PluginFolder}}\${{JunctionPointName}}" source="${{InstallLocation}}\${{JunctionPointName}}" symLink="true"/>
		</standard>
		<standard phase="copyFirmwareFiles" onError="ignore">
			<copyFile target="${{InstallLocation}}\swc_xmega.xmg" source="swc_xmega.xmg"/>
			<copyFile target="${{InstallLocation}}\swc_csr.ota" source="swc_csr.ota"/>
		</standard>
		<device phase="removePhantomSWCDevices" action="removePhantoms" when="install">
			<inf name="${{SWCInfName}}"/>
		</device>
		<device phase="installSWCDriver" fixedProgress="10" deviceProgress="75" autoTick="200">
			<inf name="${{SWCInfName}}"/>
		</device>
	</phases>
	<include name="${{InstallerDllDirectory}}\GFExperienceProgressText.cfg" select="/nvi/*"/>
</nvi>
