📜 ⬆️ ⬇️

Driver packs and their indices

Since in our previous post we invited everyone to participate in voluntary assistance in developing DRP next versions, today it’s time to talk about how we create an important thing when working with large driver archives (necessary for admins and other professionals involved serial "tuning of computers) - indexes.

Each user on the local computer collects an index of all drivers present in the system - including the operating system itself. Its presence allows you to speed up the search for drivers for installed devices, and later - to update them. In other words, it is impossible without an index; its creation and further updates critically affect the speed and efficiency of our application.


Heroes of Silicon Valley are working to optimize their own algorithms

How to build a custom driver index


For each device in the system has its own unique number ( DevID ).
It is displayed both in Windows installations and in the DriverPack Solution program. A unique identifier for each device (uniquely characterizing each device) is used by the program to automatically “select” the driver for it.
')
The database in the program contains the ID of all devices, independently monitors the driver versions for them, compares their versions and relevance. If there is a newer version in the database, the program automatically suggests installing a new driver for the device. You can find a driver for a specific device and independently on the Internet by selecting the appropriate driver search mode.

To work effectively, the program requires driver archives (in the " 7z " format), and for a quick search through them, you need to index the files contained inside.

In addition to the driver archives already contained (rather extensive) in the program, DriverPack Solution provides the ability to create custom driverpacks. This is true both in the presence of non-standard equipment and the “attachment” of the user's operating system to certain types of (possibly outdated) drivers.

New drivers after their unzipping are “scattered” in folders that contain a lot of files, at first glance, completely “unnecessary” to the user.

In order to select the "necessary" files, it is required to find one with the * .inf extension in the unpacked files.
That is, it contains (in the [SourceDisksFiles] section) a list of required files by which you want to copy the list of files into a folder previously created by the user.

Note: if there is no .inf file among the unpacked files, the automatic creation of the driver package is impossible. It is strongly recommended not to delete files with the * .CAT extension - digital signature information.

As it was before


Until 2010, while Windows versions were slightly smaller, we used the following method to create an index for building drivers.

Folder D is created (abbreviated from “Drivers”), and the drivers are placed in any subfolder inside directory D.
The subfolder name (subdirectory) can be any, but it is recommended to use the shortest names possible. Avoid long file paths - this can lead to errors and prevent installation.

When creating a folder structure for a driver package, you should follow certain generally accepted naming rules. Be sure to use only English folder names.

In the created folders, the drivers are divided by manufacturers, thereby forming subfolders.
Manufacturers' names are also recommended to shorten as much as possible. For example: "NVidia" - "N", "ATi" - "A", etc. Inside the folder with the manufacturer's name, the drivers are located in folders 1-9, if necessary, the number of folders can be increased. After creating the necessary folder structure, place your drivers in the appropriate subfolders (note: unpacked files, .inf files, but not archives or installers).

Folder nameEnglish nameExplanation
AAdditionsAdditions
BBroadbandBroadband network devices (* DSL modems and the like)
CChipsetSystem Logic Sets (Chipsets)
CPUCentral processor unitCentral Processing Unit (required for AMD K8)
DDial-upModems
GGraphicsVideo adapters (graphics cards)
LLANNetwork adapters
MMass storageHard drive controllers
PPrintersPrinters
SSoundSound adapters
VMWareVMWareVMWare virtual machine drivers
WWLANWireless adapters
UUSBUSB devices (flash drives, cameras)
YMiscMiscellaneous (All that does not fall into other sections)
YMonitorMonitors
ZHidInput devices (Smart mice, touchpad keyboards, etc.)

The process of creating (custom) driver packages


After creating a folder structure with new drivers, you need to archive the created folder (in the example, this is the “D” folder) in accordance with the archive's program requirements.


Word size: 256.

The latter is the default. You can increase or decrease the value of this parameter. Increasing this parameter allows for greater compression, but takes more time to create an archive.

Index files are stored in * .txt - format, and are located in the «Indexes» folder and not in «dev_db» , as it was before.

The structure of the index files should be considered on the example of two drivers.

The contents of the index file for the 1st:
- "PCI \ VEN_8086 & DEV_24D5 & SUBSYS_680316F3 Audio_w7x64_912.2 \ Audio_w7x64_912.2 \ 3 \ 1 \ Alcwdm18.inf Realtek.NTamd64 06/19 / 2009,6.0.1.6305 Realtek AC'97 Audio"

The contents of the index file for the 2nd:
- “HDAUDIO \ FUNC_01 & VEN_10DE & DEV_8067 Audio_w7x64_912.2 \ Audio_w7x64_912.2 \ 11 \ 1 \ nvhda.inf VIDIA.NTamd64 11/11 / 2009,1.00.00.63 High Definition Audio”

A more detailed explanation of the structure is given in the table:

Structure elementsDriver 1Driver 2
Device IDPCI \ VEN_8086 & DEV_24D5 & SUBSYS_680316F3HDAUDIO \ FUNC_01 & VEN_10DE & DEV_8067
Driver storage path in the archiveAudio_w7x64_912.2 \ Audio_w7x64_912.2 \ 3 \ 1 \Audio_w7x64_912.2 \ Audio_w7x64_912.2 \ 11 \ 1 \
Inf file nameAlcwdm18.infnvhda.inf
Type ofRealtek.NTamd64NVIDIA.NTamd64
Release date and version06/19 / 2009,6.0.1.630511/11 / 2009,1.00.00.63
Device nameRealtek AC'97 AudioNVIDIA High Definition Audio

Current reality


Today, there is no rigid link to the index structure, as they say, “free style”.

The main thing is to use operating system tokens. Additionally, there are markers for almost all laptop manufacturers.
At the same time, the location and name of the folders and subfolders ceased to matter, the only requirement is the presence of at least one system marker.

In fact, the marker is a specific folder name. It can be seen in the name of one of the driver-pack subdirectories: DRP \ Drivers \ DP_Chipset_14101.7z \ Intel \ WinAll \ Chipset \ 9.4.0.1007_HECI \

In this case, "WinAll" means "all versions of Windows."

Markers
Windows version = marker (subfolder name), which indicates that the driver that is inside the marker folder is suitable for the specified OS.

  • XP x64 = "5x64";
  • XP x86 = "5x86";
  • Vista x64 = "6x64 | NTx64 | AllNT | 67x64";
  • Vista x86 = "6x86 | NTx86 | AllNT | 67x86";
  • Windows 7 x64 = "7x64 | NTx64 | AllNT | 67x64 | 78x64 | 781x64 | 7819x64";
  • Windows 7 x86 = "7x86 | NTx86 | AllNT | 67x86 | 78x86 | 781x86 | 7819x86";
  • Windows 8 x64 = "8x64 | NTx64 | AllNT | 78x64 | All8x64";
  • Windows 8 x86 = "8x86 | NTx86 | AllNT | 78x86 | All8x86";
  • Windows 8.1 x64 = "81x64 | NTx64 | AllNT | 781x64 | 7819x86 | All8x64";
  • Windows 8.1 x86 = "81x86 | NTx86 | AllNT | 781x86 | 7819x86 | All8x86";
  • Windows 9 x64 = "9x64 | NTx64 | AllNT | 7819x64 | All8x64 | 81x64";
  • Windows 9 x86 = "9x86 | NTx86 | AllNT | 7819x86 | All8x86 | 81x86";
  • Windows 10 x64 = "10x64 | NTx64 | AllNT | 78110x64 | All8x64";
  • Windows 10 x86 = "10x86 | NTx86 | AllNT | 78110x86 | All8x86";
  • All x64 = "Allx64";
  • All x86 = "Allx86";
  • All XP = "AllXP";
  • All Vista = "All6";
  • All Windows 7 = "All7";
  • All Windows 8 = "All8";
  • All Windows 8.1 = "All81";
  • All Windows 9 = "All9";
  • All Windows 10 = "All10";
  • Any windows = "WinAll";

Notebook Markers


Marker folder with the name of the manufacturer of the laptop = word used by the manufacturer to identify its notebooks

  • Acer_nb = acer / emachines / packard * bell / gateway / aspire
  • Apple_nb = apple
  • Asus_nb = asus
  • Dell_nb = dell / alienware / arima / jetway / gericom
  • Fujitsu_nb = fujitsu / siemens
  • Gigabyte_nb = gigabyte
  • HP_nb = hp / compaq
  • Lenovo_nb = lenovo / compal / ibm
  • LG_nb = lg
  • MSI_nb = msi / micro-star
  • NEC_nb = nec
  • Panasonic_nb = panasonic / matsushita
  • Samsung_nb = samsung
  • Sony_nb = sony / vaio
  • Toshiba_nb = toshiba
  • OEM_nb = other vendors (benq / clevo / depo / durabook / ecs / elitegroup / eurocom / getac / intel / iru / k-systems / medion / mitac / mtc / nokia / pegatron / prolink / quanta / sager / shuttle / twinhead / rover / roverbook / viewbook / viewsonic / vizio / wistron, etc.)


Current index


If, when downloading the updated driver packs from our website, their file names are the same (for example, the old and the new file is named "DP_Chipset_14112.7z" ), you can simply replace the old files with the new ones.
If you have the same file, but with a smaller number, you can delete it: download “DP_Chipset_14112.7z” , but the folder has “DP_Chipset_14111.7z” - the file with the lower version number “DP_Chipset_14111.7z” can be deleted.

We index new driver packs (create lists of supported devices).
If the old indexes are deleted, then when DRP starts, the program will automatically ask you to index new driver packs - for example, the program for the new driver pack DP_Chipset_14112.7z creates the index files DP_Chipset_14112_xxx.xxx in the appropriate folder in X: \ DRP \ Indexes \ " .

You can also delete old indexes.
In the folder "Indexes" you must delete all the files of the old driver pack.
The name of the index file matches the name of the driver pack and is easy to find. For example, you downloaded the “DP_Chipset_14112.7z” driver pack and you had “DP_Chipset_14111.7z” , respectively, we delete all the DP_Chipset_14111_xxx.xxx index files, if the same and the old and downloaded driver packs have the same name, for example, “DP_Chipset_14112. 7z ” , then the indices “ DP_Chipset_14112_xxx.xxx ” also need to be deleted because The list of supported devices in the new version of the driver pack may differ.

If you are too lazy to look for the index you need to delete, you can delete the entire Indexes folder and then the program will create indexes for all the driver packs, not only for the new one, which will take longer, but the result will be identical.

We hope that this guide to creating a driver index will be useful not only to the drivers of DriverPack Solution.

Source: https://habr.com/ru/post/254429/


All Articles