Thanks Overflow. I just wanted to give you an update on the logic of finding HWIDS.
I'm working on another method besides the two I just did. This one will scan the INF as an INI file.
Each INF has a section called Manufacturer and within manufacturer there are lines such as %Company% = Company or %Company% = Company, NT.5.1, NTIA64, NTAMD64
What is great about this is you can then specify what OS model you want when searching! So not only will my program be able to search for a specific HWID but also a specific OS type.
The %Company% variables end up being sections where the HWIDS go so the above would create 5 sections
[Company]
[Company.NT.5.1]
[Company.NTIA64]
[Company.NTAMD64]
Or this real example
[Manufacturer]
%MFGNAME%=Company, NT.5.1, NTamd64.5.1, NT.6.0, NTamd64.6.0
[Company]
%DEVICEDESCRIPTION% = DriverInstall,ACPI\IFX0101,ACPI\IFX0102,*IFX0101,*IFX0102,IFX0000
[Company.NT.5.1]
%DEVICEDESCRIPTION% = DriverInstall.NT.5.1,ACPI\IFX0101,ACPI\IFX0102,*IFX0101,*IFX0102,IFX0000
[Company.NTamd64.5.1]
%DEVICEDESCRIPTION% = DriverInstall.NTamd64.5.1,ACPI\IFX0101,ACPI\IFX0102,*IFX0101,*IFX0102,IFX0000
[Company.NT.6.0]
%DEVICEDESCRIPTION% = DriverInstall.NT.6.0,ACPI\IFX0101,ACPI\IFX0102,*IFX0101,*IFX0102,IFX0000
[Company.NTamd64.6.0]
%DEVICEDESCRIPTION% = DriverInstall.NTamd64.6.0,ACPI\IFX0101,ACPI\IFX0102,*IFX0101,*IFX0102,IFX0000
Then each HWID is prefaced with it's installer which has it's own sections. That sorta follows a rhyme or reason. But not as well as the Manufacturer link to section names.
So this will provide a greater granularity when doing scans.