The other day I was searching for a specific configuration section I had made time before inside the web.config file of a Visual Studio project but I just could not remember what project it was. I ran a Windows search on the entire file system partition for a specific keyword I knew was part of that config section but the search returned nothing. I was sure the Visual Studio project was there on the hard disk partition and I thought it was Windows search that was simply failing at searching inside config files. A few tests proved in fact that nothing inside any *.config file was being retrieved by Windows search. A little research on the Internet got me to the HKLM\SYSTEM\CurrentControlSet\Control\ContentIndex\FilterFilesWithUnknownExtensions system registry value. This DWORD registry value must be set to 1 to allow searching inside files with an extension that has not been registered with Windows.
Starting with Windows XP (in Microsoft Windows 2000 and earlier versions of Windows, all files are searched for the content that you specify), Windows searches only inside registered file types. A *registered file type* is a file type for which an IFilter has been configured on the local system. An IFilter is nothing else than a component that understands the file format of a given file type and thus it is able to search its contents.
If you want to learn more about IFilters take a look at this site. For further information take a look at KB 309447 and KB 309173.