ARP ARP ARP
In Windows, if you want to remove a 3rd party program or a Windows optional component, one of the most frequently visited features would be the Add/Remove Programs control panel applet (appwiz.cpl).
Sometimes developers of XPe devices may ask 'How come the optional windows features like Games or FTP that I added to Target Designer aren't showing up in ARP?'
The answer to that question is simple really, but since I'm getting paid by the word for this blog article I'll stretch out the explanation by going beyond just that basic scenario.
In Windows Client and Server the optional components are installed using a mechanism called OC Manager and are installed from the desktop using the little button to the left of the ARP control panel called 'Add/Remove Windows Components' . The OCMGR parses an INF to install the files, registry keys, security settings, registration details, etc...
But since those OC features need to be componentized they are installed during FBA using FBA's OCMGR, so essentially the Windows OCs are installed during setup in XPe, not from the desktop. Therefore they are not available to be installed or uninstalled via ARP or the Optional Components feature of ARP. You can read more about the FBA OC Manager feature in this white paper 'First Boot Agent: Not Just A Pretty Face'. Could we register those features similarly as XP-Pro and make them available for uninstall? Probably. Would it be setting up your device for failure should someone uninstall a feature that another feature depends on? Definitely. Therefore uninstall of Windows OCs is not supported and not exposed in XPe.
Now there's the question of uninstalling 3rd party applications that were installed from the desktop and that use the Windows Installer. If you have the ARP feature in your runtime, then you can uninstall the 3rd party application from ARP. However, it's recommended that you don't support this on your device when it's in the field unless you're sure nothing else on the box has a dependency on the feature, otherwise you run the risk of putting the device in a hosed state if you haven't fully tested the device and its scenarios. And of course if you're protecting the volume using a write filter, then there's additional work for you to get the feature off the machine.
BTW, if you want ARP on your device, just add this component to your configuration: 'Add/Remove Programs Control Panel'. It just owns two file resources, one of them is a CHM. The component has no registry resources so it's fairly lightweight except for the dependency on Primitives from the Explorer Shell.
If you want your application to made available in ARP for removal, this MSDN article will help you. Otherwise if your app is not registered it will not be listed in the ARP control panel.
[No bloggers were paid for this content]
- Andy