\[Editor's Note: Do you have something to share with other readers who visit Windows NT Magazine online? We want to know about it. Write for Reader to Reader online, and you can tell others about your NT discoveries, comments, problems, solutions, and experiences. Email your contributions (300 to 700 words) to [email protected] along with your name and phone number. We edit submissions for style, grammar, and length. If we print your submission, you'll get $100. Reader to Reader submissions are the reader's opinion and do not necessarily represent the views of Windows NT Magazine.\]
I just finished reading Bilyana Doslo's article "Unattended Sound Card Installation" and I have to tell you that the statements regarding the use of SYSDIFF images to install sound cards are incorrect. I have been, for some time now, reliably installing a variety of different sound cards during unattended installations using SYSDIFF images. I've used them in major deployments for companies across the country and I haven't encountered a post-installation issue where these images have failed.
During the GUI phase of the unattended process, you can insert data into portions of the Windows NT Registry that typically aren't available for you to directly write data to after NT setup completes. You can insert the data at this stage because NT setup hasn't propagated the Registry ACLs. To add sound cards using SYSDIFF images, you need an image that captures the sound drivers and various configuration settings. However, the key to the success of this approach relies on adding the associated LEGACY_<DEVICE OBJECT NAME> statements to the HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root key. By default, sysdiff.inf excludes this Registry subtree, which is why the SYSDIFF image fails to capture the necessary device settings from the values associated with the installed sound card. You should honor the exclusion of this Registry subtree to prevent SYSDIFF from importing all the configuration settings associated with other LEGACY_<DEVICE OBJECT NAME> subkeys stored in \Enum\Root. Instead, you want to import only the desired sound card settings by adding the required information into a simple .reg file, as Listing 1 shows. (To obtain the listings, download the 7621.zip file from the Article Info box.) After you've successfully imported your sound card settings, you can import the SYSDIFF image and the newly-created .reg file through entries in your cmdlines.txt, as Listing 2 shows.
You need to ensure that copies of your captured SYSDIFF image and .reg file (in the case, sb16c.img and sb16c.reg), regedit.exe, sysdiff.exe, and sysdiff.inf all reside in the $OEM$ subdirectory of your Distribution Share Point to call them correctly using the ".\" method of installation in the cmdlines.txt.
As I add new sound cards, a simple check of the \Enum\Root subkey reveals the additional settings that you need to import. I currently support the installation of seven types of sound cards for unattended NT installations.
So how did I discover this information buried in the Registry? I used SysInternal's Registry Monitoring tool, Regmon, and some simple tests. I watched the regular installation of a sound card and captured Registry settings. Next, I created a SYSDIFF image of a sound card installation and dumped the contents of the image. I compared the captured settings with those of the Regmon tool, and the settings that were missing from the SYSDIFF image were those stored in the \Enum\Root subkey (and referenced in the Sound Card's service entry subkey of HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services). Not a half day's work, and the addition of sound cards became possible—this after countless times reading that "it just couldn't be done" with SYSDIFF images.