Driver packs and their indices

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

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


    Silicon Valley Heroes Work on Optimizing Their Own Algorithms

    How to build a custom driver index


    Each device in the system has its own unique number ( DevID ).
    It appears both in Windows installations and in DriverPack Solution . A unique identifier for each device (uniquely characterizing each device) is used by the program to automatically “select” a 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 on the Internet yourself by selecting the appropriate driver search mode.

    For the program to work effectively, driver archives are required (in the " 7z " format ), and for a quick search on 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 driver packs. 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.

    After unzipping them, the new drivers are “scattered” into folders that contain a ton of files, which at first glance seem to be completely “unnecessary” for the user.

    In order to select the “necessary” files, you need to find one with the * .inf extension in the unpacked files.
    It is he who contains (in the [SourceDisksFiles] section ) a list of necessary files, by which it is also necessary to copy the list of files to a folder previously created by the user.

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

    As it was before


    Until 2010, while there were slightly fewer versions of Windows, we used the following method of creating an index for assembling drivers.

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

    When creating the folder structure of the driver package, you must adhere to certain generally accepted naming rules. Only English folder names must be used.

    In the created folders, the drivers are divided by manufacturer, thereby forming subfolders.
    The names of manufacturers are also recommended to be minimized. For example: “NVidia” - “N”, “ATi” - “A”, etc. Inside the folder with the name of the manufacturer, 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 unitCPU (required for AMD K8)
    DDial upModems
    GGraphicsVideo Adapters (Graphic Cards)
    LLANNetwork adapters
    MMass storageHard disk controllers
    PPrintersPrinters
    SSoundSound adapters
    VMwareVMwareDrivers for VMWare Virtual Machine
    WWLANWireless adapters
    UUSBUSB devices (flash drives, cameras)
    YMisMiscellaneous (All that did not fall into other sections)
    YMonitorMonitors
    ZHidInput Devices (Intelligent Mice, Keyboards, Touchpads, etc.)

    The process of creating (custom) driver packages


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

    • Archive name: "DP_Package of Drivers_x86-32_Version of the Package of Drivers.7z"
    • Requirements: the archive name must not contain spaces . For example, the name of the version 9.06 driver package for hard disk controllers should be: “DP_MassStorage_x86-32_906.7z.”
    • Archive Format: 7z
    • Compression level: “Ultra” (to ensure maximum compression, you can specify a lower compression level if desired).
    • Compression method: "LZMA" (the value is set by default, it is not recommended to change it).
    • Dictionary size: 32 Mb

    Word size: 256.

    Last installed by default. You can increase or decrease the value of this parameter. Increasing this parameter allows for more 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 the "dev_db" , as it was before.

    The structure of index files should be considered using two drivers as an example.

    The contents of the index file for the 1st:
    - «the 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 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 NVIDIA 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
    The 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
    A typeRealtek.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 realities


    Today, there is no tight binding to the structure of the index, 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 folders and subfolders has ceased to matter, the only requirement is the presence of at least one system token.

    In fact, the marker is the specific name of the folder. It can be seen in the name of one of the subdirectories of the driver pack: 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), indicating 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 laptop manufacturer = word used by the manufacturer to identify his laptops

    • 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 updated driver packs from our site, their file names match (for example, the old and new files have the name “DP_Chipset_14112.7z” ), you can simply replace the old files with new ones.
    If you have the same file, but with a lower number, you can delete it: you downloaded "DP_Chipset_14112.7z" , but in the folder there is "DP_Chipset_14111.7z" - you can delete the file with the lower version number "DP_Chipset_14111.7z" .

    Indexing new driver packs (creating lists of supported devices).
    If the old indexes are deleted, then when you start DRP, the program will automatically ask you to index the new driver packs — for example, the program for the new driver pack “DP_Chipset_14112.7z”creates index files “DP_Chipset_14112_xxx.xxx” in the corresponding folder in “X: \ DRP \ Indexes \” .

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

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

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

    Also popular now: