Is there some interface that would allow me to determine the latest version for all DriverPacks and a corresponding torrent link?

What I would really like to end up with is a table with DP-file-name and a link to the .torrent file. Is this possible?

mr_smartepants wrote:

I like the idea (it's been brought up before).
It would require that the DriverPacks contain "index" files (like a database) for each contents.

I actually started to code this up (in VBS - don't hate).

* Recursively walk the uncompressed DP directory structure (don't need it compressed if you're only copying select drivers)
* For each .inf, parse out the HWIDs and driver locations.
* Do a quicksort and delete the dupes.

What I ended up with was a tab-delimited file that looks like:

8086&154D&7B118086    x64\Server\L\Intel\1\Winx64\NDIS62    ixn62x64.inf    74
8086&1557    x64\Server\L\Intel\1\Win64\NDIS62    ixn6264.inf    61
8086&1A38    x64\Vista\L\Intel\4\NDIS61    qd160x64.inf    51
8086&1C00    x64\All\M\Intel\5    cougide.inf    40
8086&1C01    x64\Win7\M\Intel\5    couide2.inf    34
8086&1C02    x64\All\M\Intel\3    iaAHCIC.inf    95

Fields:

1 = HWID
2 = relative path
3 = inf file name
4 = line number in .inf

The last two fields are for debugging.

The whole thing takes roughly 20 seconds. This is with 5 packs on an SSD  - about 1 GB and 4,500 files.

I wrote a separate script that reads the entire index into an array. It then uses WMI to retrieve HWIDS and do a binary search of the array. That part takes all of a second per this log file.

4/23/2013 12:05:42 PM Loading Index
4/23/2013 12:05:42 PM Index loaded
4/23/2013 12:05:42 PM Get driver failed for 10EC&8168&84321043 Realtek PCIe GBE Family Controller
...
4/23/2013 12:05:42 PM Starting copy
4/23/2013 12:05:42 PM tools\Robocopy dpacks\x64\All\C\Intel\1 \dpacks-sel\x64\All\C\Intel\1 /s /r:0
4/23/2013 12:05:42 PM tools\Robocopy dpacks\x64\Win7\C\Intel\1 \dpacks-sel\x64\Win7\C\Intel\1 /s /r:0
...
4/23/2013 12:05:43 PM Copy done

I got stuck at this point as I didn't really understand how to use this with dpinst.

Maybe someone smarter than me *cough* could take this concept and actually make it work.