SyntaxHighlighter

Wednesday, May 23, 2012

Solved "Setup was unable to open information file games.inf"

Windows XP
Windows XP was actually a great OS, and I still use it extensively in testing on virtual machines. Of course, for my test environment, it did not make sense to install all of the components of XP, so I made sure I only installed the lightest components that I thought I needed. 

It was only later that I discovered that I could not add components back in because the Add/Remove Programs dialog would error with "Setup was unable to open information file games.inf". Fortunately, this problem is not that difficult to solve. 
The problem is caused by the existence of entries in the optional components INF file located at C:\Windows\inf\sysoc.inf, for components that we actually didn't install in the first place. Fixing the problem is a simple process of removing these entries.

To solve the problem:
  1. Open the file C:\Windows\inf\sysoc.inf using notepad.
  2. Find the entry pertaining to the games.inf file. The entry should look like this:
    Games=ocgen.dll,OcEntry,games.inf,,7
  3. Place a semicolon at the beginning of this entry. The entry should now look like this:
    ;Games=ocgen.dll,OcEntry,games.inf,,7
    The semicolon is interpreted as a comment in INF files and will have the effect of removing the entry without actually deleting it. 
  4. Save the file.
  5. Try the  Add/Remove Windows Components button again.
    If it gives you an error again, repeat the process by commenting out each corresponding entry until you no longer receive the errors.
I had to repeat the process for 4 entries: games.inf; optional.inf; pinball.inf and igames.inf. My set of entries ended up as follows:
;Games=ocgen.dll,OcEntry,games.inf,,7
AccessUtil=ocgen.dll,OcEntry,accessor.inf,,7
CommApps=ocgen.dll,OcEntry,communic.inf,HIDE,7
MultiM=ocgen.dll,OcEntry,multimed.inf,HIDE,7
;AccessOpt=ocgen.dll,OcEntry,optional.inf,HIDE,7
;Pinball=ocgen.dll,OcEntry,pinball.inf,HIDE,7
MSWordPad=ocgen.dll,OcEntry,wordpad.inf,HIDE,7
;ZoneGames=zoneoc.dll,ZoneSetupProc,igames.inf,,7

After commenting out the offending lines, I was able to access the Windows Components and make the adjustments that I needed.

No comments: