Topic: FindHWIDS v3.2s - The INF Searching, Hardware ID Exporter

=== Introduction ===
FindHWIDS will export a list of hardware id's (HWIDS) from an INF file or files to a CSV or Sysprep.inf file. CSV output will give you all hardware id's including duplicates, plus driver date, version, etc. The Sysprep.inf output will not produce ANY duplicates. Testing is still recommended (Sysprep may crash when it comes to issues with the actual driver). And it will only parse SCSIAdapter and HDC (no need to specify in classes filter).

FindHWIDS will recursively (or iteratively) scan, or search, a folder, looking at all folders within that one folder, for any INF files. It will then scan each INF file for HWIDS, those that aren't commented or not usuable in any way. FindHWIDS can also scan multiple different folders and/or files by dragging and dropping these into the Location input box.

FindHWIDS will also allow you to only export the hardware found in the current system. Useful for PE environments to export to sysprep.inf for an offline integration of MassStorage drivers. I haven't tested this function fully yet with PE. So please test!

There's also the ability to export all current hardware in the system to a log file, with information about the currently installed hardware. Useful for testing and troubleshooting purposes (similar to devcon export).

=== Latest Version Download via Dropbox - FindHWIDS v3.2s ===
http://dl.dropbox.com/u/464978/FindHwids.v3.2s.exe
http://dl.dropbox.com/u/464978/FindHwids.v3.2s_x64.exe NEW!

=== Future Plans ===
-- Export only Version information, possibility of choosing what exactly to export.
-- Add export INF locations into the registry (like Vernalex's tool)
-- Ability to parse export OemPNPDriverPath, possibly also MassStorage section
-- Ability to parse and export DevicePath registry entry for drivers
-- Add Exclude, along with the Include, filters to both Class and HWIDs
-- Change so that folders and inf files are separated and easy to add/remove the locations
-- Set parameters using an INI file and Auto start modes
-- Work on install functionality (again? I don't know)
-- Driver version,pnpid,date precedence for exporting to registry and sysprep types
-- Export Raw Data (?, not sure of the need)
-- Find if a list of PNP Ids supplied via txt, ini, current hardware is in the list of drivers and report on what is and isn't found.
-- Write a deep scan function when pnpid is "malformed" (to my standards at least) where the line continues to the next with a backslash
-- Adjust hardware report to export to CSV (similar to current INF export) and get current driver path

=== Change Log ===
v3.2s @ 2012-10-16 -
-- Now a 64b version available! (quicker too!)
-- Speed up CRC32 hashing
v3.2r @ 2012-10-15 -
-- Changed Checksum to CRC32 and made it an internal script instead of a third party DLL, also make export about 8% smaller
-- Please be aware the the longer the location and name of the CSV file the longer it may take for the export to complete
-- Adjusted some information for message boxes
-- You can search for PNP Id's at the start of the HWID like PCI\VEN or a string within the HWID like SUBSYS_123456C
-- UPX Compression changed to lowest to help with virus scanners
-- Changed initial CSV name to FindHWIDS-DATE-TIME.csv, which should help with historical testing and continuous testing
-- Created a ClassGUID translator to help speed up (and correct) Classes (because it won't have to reread the INF)
v3.2p @ 2011-02-28 -
-- Fixed issue with Reading sections bombing when key/value is directly followed by a section
v3.2o @ 2011-02-24 -
-- Fixed issue with Array growing to enormous proporations during reading INF File
v3.2n @ 2011-02-24 -
-- Updated scanning for selecting Windows 7/Vista/2008/2008R2 OS's
-- Changed scan progress indication to a scanned to total scan items
-- Fixed issue with Automatically Choosing OS and Arch
-- Removed support for Pre-NT Only INF Files
... ... ... ... check "About" for a more historical change-log (still can't believe I've been developing this for 4 years now)

Last edited by stamandster (2012-10-20 13:52:40)

Re: FindHWIDS v3.2s - The INF Searching, Hardware ID Exporter

i see what you mean, there are three or four distinct coding styles mixed together wink

But it works wink and that is the most important thing. smile

I LOVE the fact that you included the source  Sweet...

but some of the gang may not be able to compile it... wink
3rd party DriverPack could be a nice place to drop one of those hint hint

DP BartPE Tutorial   DP_BASE Tutorial   HWID's Tool     Read BEFORE you post    UserBars!
http://driverpacks.net/userbar/admin-1.png
The DriverPacks, the DP_Base program, and Support Forum are FREE!.

Re: FindHWIDS v3.2s - The INF Searching, Hardware ID Exporter

hi
it does not scan for SCSI
example
[N-5]
ms_count=2
>> pci. blabla>>
ms_2_tag="nvrd325"

ms_2_sysFile="nvrd325.sys"
ms_2_hwids="SCSI\NVIDIA__Raid_Disk________,SCSI\__NVIDIA_______Raid_Disk,SCSI\NVIDIA__Raid_Disk_20_____,... not PCI

The answer was 42?
Kind regards, Jaak.

Re: FindHWIDS v3.2s - The INF Searching, Hardware ID Exporter

So what else should I scan for? Just "SCSI\"?

I've noticed the other Nvidia devices are weird too

;NVIDIA nForce RAID
SCSI\NVIDIA__Raid_Disk________ = "C:\SYSPREP\DRIVERS\M\N\5\nvrd325.inf"
SCSI\__NVIDIA_______Raid_Disk = "C:\SYSPREP\DRIVERS\M\N\5\nvrd325.inf"
SCSI\NVIDIA__Raid_Disk_20_____ = "C:\SYSPREP\DRIVERS\M\N\5\nvrd325.inf"
SCSI\__NVIDIA____Raid_Disk_20 = "C:\SYSPREP\DRIVERS\M\N\5\nvrd325.inf"
*NVRAID20 = "C:\SYSPREP\DRIVERS\M\N\5\nvrd325.inf"
GenNvRaidDisk = "C:\SYSPREP\DRIVERS\M\N\TM\nvraidtm.inf"
*_NVRAIDBUS = "C:\SYSPREP\DRIVERS\M\N\TM\nvraidtm.inf"
*NVRAIDBUS = "C:\SYSPREP\DRIVERS\M\N\TM\nvraidtm.inf"

I'll see what I can cook up!

Last edited by stamandster (2008-08-31 07:25:13)

Re: FindHWIDS v3.2s - The INF Searching, Hardware ID Exporter

USB... and i am forgeting one too... hmmm

AHCI or... i dont remember ATM

DP BartPE Tutorial   DP_BASE Tutorial   HWID's Tool     Read BEFORE you post    UserBars!
http://driverpacks.net/userbar/admin-1.png
The DriverPacks, the DP_Base program, and Support Forum are FREE!.

Re: FindHWIDS v3.2s - The INF Searching, Hardware ID Exporter

kickarse - If you would like, I could help you create a GUI/window for your application, so that it could take an input from the user for the location to scan for HWIDs.  That way, you could compile the final program into an EXE so it could be run by anyone and no one would have to worry about compiling it.  I have been using AutoIt a lot lately for programs I've made for my job and have learned how to make GUIs/windows for AutoIt programs.  I could design it so that the user enters the path into the field and when the user clicks on the button it will run your program, going through the location the user entered.  Please let me know if you would like me to do this.

--Echo_Platoon

Last edited by Echo_Platoon (2008-08-31 09:16:03)

http://d1syubgj0w3cyv.cloudfront.net/cdn/farfuture/5ocSdUxUxrK5g8rfTm7_39bPWgBMWiteXNH4McROrNw/perpetual:forever/userbar/mainteam-1.png

Re: FindHWIDS v3.2s - The INF Searching, Hardware ID Exporter

Echo_Platoon?
did you find a workaround for the broadcom LAN drivers which defy the microsoft scanner?

edit. > LAN or WLAN.. I wish I remember which it skipped ten drivers in.
(I may have an old backup drive with the work I did back then.. it may still have have those weird scan-resistant drivers in marked folders. The VBS code in Utilityspotlight05 will not output the hwids from some broadcom drivers..)

edit two
http://forum.driverpacks.net/viewtopic. … 495#p23495
WOOT.

Last edited by Jaak (2008-08-31 10:11:22)

The answer was 42?
Kind regards, Jaak.

Re: FindHWIDS v3.2s - The INF Searching, Hardware ID Exporter

I would like to mention that utilityspotlight05 (in VBS) has a few really desirable things.

it does not only get all sorts of hardware ID (it gets PCI, usb/audio and so on) but it also collects version (version is VERY IMPORTANT), date, and it will try to get specified OS.

I've tried to contact the original developer, but got zilch.

Last edited by Jaak (2008-08-31 10:25:11)

The answer was 42?
Kind regards, Jaak.

Re: FindHWIDS v3.2s - The INF Searching, Hardware ID Exporter

Echo_Platoon wrote:

kickarse - If you would like, I could help you create a GUI/window for your application, so that it could take an input from the user for the location to scan for HWIDs.  That way, you could compile the final program into an EXE so it could be run by anyone and no one would have to worry about compiling it.  I have been using AutoIt a lot lately for programs I've made for my job and have learned how to make GUIs/windows for AutoIt programs.  I could design it so that the user enters the path into the field and when the user clicks on the button it will run your program, going through the location the user entered.  Please let me know if you would like me to do this.

--Echo_Platoon

Thanks Echo for the invitation but I can do that easily myself. I do appreciate it though!

I'm going to be working on getting the extra hwids extracted.

Re: FindHWIDS v3.2s - The INF Searching, Hardware ID Exporter

@ kickarse

You have no idea how much I like that nick. It reminds me of the 1000 post BUTTer topic.
A kick in the butt.
BUTTER meant this. (get a little help to) To boot yourself by pulling your bootstraps and get a lift off.

When I wrote the original first post in butter topic, w/i about booting into setup and how to install windows with high emphasis on how to NOT lose data, I had to smile when I used the word "but" as often as our newscasters do (oft in bent grammar.).

we had had a toaster lark (really good plain old fun technical topics got a toaster award), and train, greengoose, mosaic1, and several other forum members enjoyed the toasts so then we buttered it.. butter was an inside joke, and I made my 1000 have that title.
I kinda miss some of those guys and I surely miss those days. It was simpler.
The butter topic evolved.
It eventually got me here.

The answer was 42?
Kind regards, Jaak.

Re: FindHWIDS v3.2s - The INF Searching, Hardware ID Exporter

hmmm
kickarse does not have access to the DP team topic echoplatoon posted in..
I will repeat a line from a post in that topic.
so, I am interested in any improvement on a scan tool so that we might have standard output and no blind spots..


repeat from this topic.
I would like to mention that utilityspotlight05 (in VBS) has a few really desirable things.
it does not only get all sorts of hardware ID (it gets PCI, usb/audio and so on) but it also collects version (version is VERY IMPORTANT), date, and it will try to get specified OS.

I cannot post all content from the private forum, but the sorting and pruning guru (syspreppers are focussed on no conflicts.) and graphics master, and I, and the old style single machine installer guru..
(disc based releases have to work for all, but we will try tell you how to filter..)
base line for all of us is this.
DriverPacks need a scan tool so that we might have standard output and no blind spots..

The answer was 42?
Kind regards, Jaak.

Re: FindHWIDS v3.2s - The INF Searching, Hardware ID Exporter

utilityspotlight and the scripts, and excell sheets we (Or I..) produced  have been avaliable for a quite some time.
We've not told (or not often enough) you how to add to excell sheets when they have different number of rows.
We know they have helped us help you, and I know echoplatoon and jeff were the first adopters.

I recall echoplatoon helped me with a excell sheet on mass.
later on, he helped jeff and I on LAN.
We learned by his example, and then, then we started to use utilityspotlight with the echoplattoon formula.
Oh yes, the SED scrips are woven (most intricately) into that timeline.
We learned that WHQL means h*ll.

The sheets exist and all testers had access. (while we pruned sound, all topic subscribers saw what was done, IF interested.)
Erik commented he saw the usefulness.

Q: what stops us from having a standardised sheet?
A: we have no standard.

Last edited by Jaak (2008-08-31 11:37:47)

The answer was 42?
Kind regards, Jaak.

Re: FindHWIDS v3.2s - The INF Searching, Hardware ID Exporter

So I updated the program to also find those other things *, SCSI and the weird nVidia GenNvRaidDisk. It should return good HWIDS for all MassStorage devices.
...

see code in first post...

Last edited by stamandster (2008-08-31 22:08:45)

Re: FindHWIDS v3.2s - The INF Searching, Hardware ID Exporter

your still missing 
b.  Process INFs for HDAUDIO\FUNC
c.  Process INFs for USB\

echoplatoon reminded me...

DP BartPE Tutorial   DP_BASE Tutorial   HWID's Tool     Read BEFORE you post    UserBars!
http://driverpacks.net/userbar/admin-1.png
The DriverPacks, the DP_Base program, and Support Forum are FREE!.

Re: FindHWIDS v3.2s - The INF Searching, Hardware ID Exporter

OverFlow wrote:

your still missing 
b.  Process INFs for HDAUDIO\FUNC
c.  Process INFs for USB\

echoplatoon reminded me...

You need HDAUDIO\FUNC and USB\ to get MassStorage working for sysprep??

I think I understand why you want those... you also want to use this to scan chipset or audio too. Well, here's the latest version that will do it. It still outputs to the sysprep.inf. Perhaps you would also want the ability to output to an ini file? I'm also adding command line ability to choose the folder scan as well as the ini/inf location.
...

see updated code in first post...

Last edited by stamandster (2008-08-31 22:09:54)

Re: FindHWIDS v3.2s - The INF Searching, Hardware ID Exporter

i was actually thinking of output to .csv ??? eh? with version info too

this would be a huge time saver for the DriverPacks team (the members who actively update the packs)

they would use the dump of this file to find duplicates and conflicts - this benifits everyone...!

DP BartPE Tutorial   DP_BASE Tutorial   HWID's Tool     Read BEFORE you post    UserBars!
http://driverpacks.net/userbar/admin-1.png
The DriverPacks, the DP_Base program, and Support Forum are FREE!.

Re: FindHWIDS v3.2s - The INF Searching, Hardware ID Exporter

Ok so I added the ability to output to CSV. I also fixed some checks and added the versioning for CSV only. The file goes to the current dir and is called hwids.csv.

See first post for updated code.

Although I need someone in the team to test it to make sure it's getting the right results. When it parses to sysprep.inf it'll over write whatever hwid it scans last. So it's best to use CSV output for finding dupes.

Last edited by stamandster (2008-09-01 06:29:03)

Re: FindHWIDS v3.2s - The INF Searching, Hardware ID Exporter

Thanks a million ...
Jaak is most likely to report on this
but he is in the middle of a personal project ATM

I am sure we will still hear something soon... wink

DP BartPE Tutorial   DP_BASE Tutorial   HWID's Tool     Read BEFORE you post    UserBars!
http://driverpacks.net/userbar/admin-1.png
The DriverPacks, the DP_Base program, and Support Forum are FREE!.

Re: FindHWIDS v3.2s - The INF Searching, Hardware ID Exporter

Thanks Overflow!

I'm also going to be checking my logic of how I select the HWIDS to make sure that I'm getting good data. Also, right now the program basically opens each file individually and then reads each line to find the HWIDS. If I can figure it out I'm going to have an array read the file and find the HWIDS. It should be much faster, I hope anyways.

Also, I wouldn't mind helping out the dev team through testing packs and whatnot either.

Last edited by stamandster (2008-09-02 03:26:14)

Re: FindHWIDS v3.2s - The INF Searching, Hardware ID Exporter

make sure your code checks the beginning of the lines for a semicolon too...

that means the line is to be ignored... wink

DP BartPE Tutorial   DP_BASE Tutorial   HWID's Tool     Read BEFORE you post    UserBars!
http://driverpacks.net/userbar/admin-1.png
The DriverPacks, the DP_Base program, and Support Forum are FREE!.

Re: FindHWIDS v3.2s - The INF Searching, Hardware ID Exporter

Should we have it also check for ACPI\ and ACHI\ as well?  I know I have seen some HWIDs that start with those.

Last edited by Echo_Platoon (2008-09-02 04:33:41)

http://d1syubgj0w3cyv.cloudfront.net/cdn/farfuture/5ocSdUxUxrK5g8rfTm7_39bPWgBMWiteXNH4McROrNw/perpetual:forever/userbar/mainteam-1.png

Re: FindHWIDS v3.2s - The INF Searching, Hardware ID Exporter

Echo_Platoon wrote:

Should we have it also check for ACPI\ and ACHI\ as well?  I know I have seen some HWIDs that start with those.

I can add those if you want... Perhaps I'll make the GUI so you can select the different types too. I just want to make sure we get the logic down before I add onto it. Make sure it parses the correct data.

OverFlow wrote:

make sure your code checks the beginning of the lines for a semicolon too...

that means the line is to be ignored... wink

It does that already by default. It'll also ignores the rest of a string when something is like PCI\VEN... ; Something here the Something here will not be added. I also added a check to make sure it won't add the ExcludeFromSelect HWIDS... the ones that should be ignored too!



------------
Ok, so I just added the other ACPI\ and AHCI\ it's updated in above code...

Next release should be faster with FileReadToArray instead of FileOpen and FileReadLine, we'll see though.

Last edited by stamandster (2008-09-02 06:47:46)

Re: FindHWIDS v3.2s - The INF Searching, Hardware ID Exporter

v1.6 is updated - migrated to array's instead, much faster! Scanning found 40,126 HWIDS from all DriverPacks (1,329 INF files) only took 144 seconds! However, according to Windows file search I'm missing 10 inf files. Scratch that, Windows file search is incorrect it IS actually 1,329 somehow Windows file search is finding an extra 10 somewhere. I confirmed this with Agent Ransack which gave me 1,330 that had one folder. v1.5 took 755 seconds to complete, yikes!

Last edited by stamandster (2008-09-02 15:06:59)

Re: FindHWIDS v3.2s - The INF Searching, Hardware ID Exporter

read to array is infinitely faster than reading lines.
because each line is read by reading the lines from the beginning. wink
IE to read line 100 it must first read the previous 99 lines first, to read line 101 it must start over at line one again and read through to line 101. its crazy but true. that is why we have  FileReadToArray  as a function wink although FileReadToArray is a little over kill if you actually only need one line wink 

Jaak said broadcom were the problem drivers for Spotlight tool... perhaps check lan pack for those pesky infs

DP BartPE Tutorial   DP_BASE Tutorial   HWID's Tool     Read BEFORE you post    UserBars!
http://driverpacks.net/userbar/admin-1.png
The DriverPacks, the DP_Base program, and Support Forum are FREE!.

Re: FindHWIDS v3.2s - The INF Searching, Hardware ID Exporter

There was a little error in the 1.6 script for where I put the header portion of the csv script. Its all fixed though.

What exactly should I be looking for in the Broadcom drivers?? Are Broadcom folders B1, B2, B3 and B4?

Yeah I knew that the array would be a whole lot faster. I just wasn't sure on how to make it work until yesterday.

Last edited by stamandster (2008-09-02 22:38:39)