Lower Filter Driver

3.9k views Asked by At

How can I install a filter driver as lower filter driver? All samples of DDK are upper filter driver. Is there any method except using INF file for doing this work? I know that lower filter drivers sit under FDO and top of BDO, but if there are more that one lower filter driver, how they are ordered? Can I put my driver at a specific location of this stack?

2

There are 2 answers

1
adelphus On

How can I install a filter driver as lower filter driver?

Upper and lower filter drivers are installed in much the same way - you don't actually require an INF - you can just set values in the Registry. Of course, it depends upon which type of Filter Driver you want install, but as an example, if I want to set a lower disk class filter driver, I open up Regedit and navigate to the following key:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E967-E325-11CE-BFC1-08002BE10318}

In here, you should see a string value called UpperFilters containing PartMgr. If you want to add a Lower Filter, simply create a LowerFilters value and set the name of your driver key to it. The GUID in the keyname is horrible, but if you scan through the Class key, you'll see lots of GUID-named keys - the default value of each one contains a brief description of what device the key represents.

Like PartMgr and all the other drivers, you will need to create your driver key under HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services with all the appropriate configuration values. If you're not sure of the values for your driver, dump the entire HKLM\SYSTEM key to a file, install your driver normally, take a second dump of the entire HKLM\SYSTEM key and diff the dumps to see what values were put where.

Can I put my driver at a specific location of this stack?

Contrary to what anyone tells you otherwise, the answer is no. People sometimes believe that when multiple drivers are listed in the UpperFilters and LowerFilters registry values, the first one in this list gets loaded first. I've even witnessed this turn into "registry wars" where drivers are constantly fighting over their position in the list. It's nonsense and you should design your driver to cope with any other driver appearing above or below you.

0
user2369171 On

you can a osr.com provided utility driverloader which will load you driver either upper/lower filter driver.basically it is a gui based utility in which you will all the options requiring to load the driver. 1. you can set your driver load order. 2. you can select your driver what kind you wrote. 3. no need for inf to set the registry key's it will do it for you automatically but if you want to modify these key value you can do it manually. 4. for more information go for www.osr.com. Enjoy :-)