Take the 2-minute tour ×

I'm stuck. To cut long story short, the task is to enumerate all driver files for backup. For some drivers like display adapter driver, I use


from setupapi and that's working fine as in DumpDeviceDriversCallback I can get the Source of the device driver file and then copy it to backup location one by one.

However, the same function ignore the callback for system drivers. For example for "Direct memory access controller" I can not get the list of files. Funny thing, but windows device manager also can not find any files for some of the system devices.

Some special software like DriverMax and DoubleDriver actually CAN backup those driver. So, this is the problem that may be solved.

Anyone can explain me what is going on here?

share|improve this question
add comment

1 Answer

up vote 2 down vote accepted

There are lots of devices that are installed using what's called a "No Driver" INF. These INFs provide enough information such that Device Manager will have some info to show for the device (thus avoiding them appear in the "unknown devices" category) but don't actually install any drivers.

These devices do not need drivers because they are managed by either the O/S itself, the BIOS, or both. Usually these devices are all "installed" using machine.inf, which has a giant list of known no driver devices.

As for any software that claims to back the drivers for these devices up, either they're just copying the INF or they're full of it because there's nothing but the INF to back up.


share|improve this answer
There are obvious file references in these INF files. I can see them in INF, I can find them in Windows directory. Here is an example: pastebin.com/Xu3VpjnW –  Virtuality Jan 26 '11 at 18:25
Of course, machine.inf installs more than just these devices. Note the section for the DMA controller: 105.%*PNP0200.DeviceDesc% = NO_DRV_X, *PNP0200 ; DMA –  snoone Jan 26 '11 at 20:11
So, why driver files are obviously used, but system don't "see" them? Why DoubleDriver can backup this device driver? Thank you for response. –  Virtuality Jan 26 '11 at 22:34
There aren't any driver files used, that's the reason that the device points off to a "NO_DRV" section of the INF. If you scan the INF for these sections you'll even see a comment: ;************************************************************************** ; Do-nothing section used to avoid "Unknown hardware" installation prompts. [NO_DRV] [NO_DRV.Services] AddService = , %SPSVCINST_ASSOCSERVICE% ; null service install –  snoone Jan 27 '11 at 14:43
Thank for your response. What can you say about this section: [PCI_DRV_ROOT] CopyFiles=PCI_COPYFILES SyssetupPnPFlags = 1 AddReg = PCI_DRV_ROOT_REG [PCI_COPYFILES] pci.sys,,,0x100 –  Virtuality Jan 27 '11 at 17:02
show 2 more comments

Your Answer


