This is my first post to the list. I have a situation to install a filter driver.
I have a disk upper filter driver and want to install for my storage device. I was able to install it with the INF file. However, I would like to like to know if it is possible to install the filter driver without the help of INF file. If so, can any one guide me with the procedure to do it?
I believe it is possible without INF file. Do I need to develop an application to do this automation? Do I need to use Setup API functions to achieve this?
Win DDK has a sample program (I believe called ‘addfilter’ or something
like that).
On Wed, Oct 17, 2012 at 10:06 PM, wrote:
> I believe it is possible without INF file. Do I need to develop an > application to do this automation? Do I need to use Setup API functions to > achieve this? > > Any help is appreciated. > > BR, > Sushma. > > — > NTDEV is sponsored by OSR > > For our schedule of WDF, WDM, debugging and other seminars visit: > http://www.osr.com/seminars > > To unsubscribe, visit the List Server section of OSR Online at > http://www.osronline.com/page.cfm?name=ListServer >
I believe it is possible without INF file. Do I need to develop an application to do this automation? Do I need to use Setup API functions to achieve this?
Yes.
Generally, there are three steps:
Create the service. You can do that with the “sc” command, or with
the Service Manager APIs (OpenSCManager, CreateService) from your own
application.
Call the WDF co-installer. If your filter is KMDF, you must get the
co-installer involved so it can do the version check. The
general\ioctl\kmdf\exe folder in the WDK samples is an application that
does both steps 1 and 2.
Tweak the UpperFilters/LowerFilters registry keys in the device(s) or
class you want to filter. You can look at devcon for samples of how to
use SetupDiSetDeviceRegistryProperty to set the registry keys.
Oh, and of course, restart the affected device(s).
–
Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.
Are there actually any advantages of not to using an INF file? It’s the legacy way and usually when improved ways come along legacy gets unsupported/stops working. And isn’t this an example of why Microsoft gave us DPINST?
The KMDF filter is developed as a part of anti-virus software which filters all the requests directed to any storage device. And also with the INF file I need to go for digital signatures. So, we thought of installing it without the INF file. Do you think it is still required INF should be used for it?
Indeed it appears the Hardware Compatibility Kit (HCK) only has tests for filter drivers on Win8 and Server 2012. This will making signing an INF based filter driver for other OSes tricky.
The KMDF filter is developed as a part of anti-virus software which filters all the requests directed to any storage device. And also with the INF file I need to go for digital signatures. So, we thought of installing it without the INF file. Do you think it is still required INF should be used for it?
Are there actually any advantages of not to using an INF file? It’s the legacy way and usually when improved ways come along legacy gets unsupported/stops working. And isn’t this an example of why Microsoft gave us DPINST?
Actually, no. DPInst does not apply in this case.
If you have a driver that is the primary driver for your device, so that
your INF includes hardware identifiers in its device section, then an
INF file is required. DPInst in that case only does a pre-install, by
copying the files to the driver store. The actual installation is done
by Device Manager in an entirely separate process, by scanning through
the driver store looking for a match.
Filter drivers and legacy drivers are different. There is no automatic
searching by Device Manger. The driver store is not involved. Instead,
the installation is done directly, by hand. I mentioned the steps
previously (copy driver file, create service, manage registry keys,
restart). You can do those steps in your own application. For a class
filter, you can also use an INF file with a [DefaultInstall] section.
The [DefaultInstall] thing is ENTIRELY DIFFERENT from a PnP INF
installation. It’s just a cheap way of doing an installer application.
Device Manager and the driver store are not involved, and you cannot use
DPInst for this.
Device filters cannot ever be installed by an INF file, because you
cannot identify the registry entry you need to modify.
–
Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.
Device filters cannot ever be installed by an INF file, because you
cannot identify the registry entry you need to modify.
I should qualify that. You can certainly install device filter drivers
in a PnP INF that is ALSO specifying the primary driver for a device.
You cannot use an INF file to add a filter to a device for which a
driver already exists…
–
Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.
Not true. This subject is about a disk class filter driver. DPINST is ideal and trivial for this task. No need to baffle newbies with a lot of hand waving and confusing information.
Hi,
I’m testing the diskperf upper filter driver sample come with WDK7.1,
there’s also a .INF sample included, but I got 2 problems on using that .INF:
1.can’t upgrade new version filter driver with that .INF
(new filter driver not replaced into the system even after reboot)
2.not able to remove/unistall the filter driver (with the .INF or command line)
I’m trying to find if 3-party installer(like InsxxShxxx, Setxx_Facxx) can have the filter driver installation done easily (anyone knows?) or have to write my own SetupDI installer,
Yeah but he did say “The KMDF filter is developed as a part of anti-virus software which filters all
the requests directed to any storage device.” That’s a disk class filter.
want to create driver code for usb which will create two plus one for
network interface and one for mux ???
please help how can i do this.
Thanks in advance…!!!
On Sat, Oct 20, 2012 at 6:34 AM, Tim Roberts wrote:
> xxxxx@gmail.com wrote: > >> DPInst does not apply in this case. > > Not true. This subject is about a disk class filter driver. > > Well, he didn’t say that. Maybe that’s what he meant – I’m not fluent > enough in the disk stack to translate… > > – > Tim Roberts, xxxxx@probo.com > Providenza & Boekelheide, Inc. > > > — > NTDEV is sponsored by OSR > > For our schedule of WDF, WDM, debugging and other seminars visit: > http://www.osr.com/seminars > > To unsubscribe, visit the List Server section of OSR Online at > http://www.osronline.com/page.cfm?name=ListServer >
want to create driver code for usb which will create two plus one for
network interface and one for mux ???
please help how can i do this.
As Chris has implied, your question is too ambiguous to answer. By
reading between the lines, I’m guessing you want to create a USB device
that acts like a network device, and has some other purpose at the same
time (although I don’t know what “mux” would mean in this context).
None of that requires any driver code. That’s done with the USB
descriptors in the device. Each USB interface creates a separate device
stack in Windows. So, you create two interfaces: one is a network
interface (Communication Device Class), the other is a different interface.
Windows assigns the drivers automatically.
–
Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.
Thanks a lot for your reply.
Now i am explaining you what i need to create.actually i want to create a
composite bus driver which will create two pdo’s,
on first pdo i want to attach n/w driver and on another pdo want to connect
MuX (N:1) driver.then on this 2nd pdo again create
two pdo’s on that pdo’s i want to connect a serial driver and modem
driver.may i wrong just guide me please.
Untill now i am able to create composite driver by taking sample help
(toaster) but having a lot of confusion.as per my need i
also want usb functionality for all.
now please tell me one thing can i go for toaster or i have to create a usb
driver which will acts as a composite driver and with this composite driver
i can create two pdo’s one for n/w and one for (N:1) Mux so on.
so what i need to know is that, if i am going for usb(composite) driver
then for all the other driver i have to write the separate usb specific code
for each one…How can i do this if any other approach for the same
implementation is there please guide me please.how can i acheive my goal.
i am much comfortable with wdm so all the things i want in wdm only or you
can suggest me…
Thanks a lot in Advance. sorry for longer post.
On Mon, Oct 22, 2012 at 10:02 PM, Tim Roberts wrote:
> rahul dev tripathi wrote: > > want to create driver code for usb which will create two plus one for > > network interface and one for mux ??? > > > > please help how can i do this. > > As Chris has implied, your question is too ambiguous to answer. By > reading between the lines, I’m guessing you want to create a USB device > that acts like a network device, and has some other purpose at the same > time (although I don’t know what “mux” would mean in this context). > > None of that requires any driver code. That’s done with the USB > descriptors in the device. Each USB interface creates a separate device > stack in Windows. So, you create two interfaces: one is a network > interface (Communication Device Class), the other is a different interface. > > Windows assigns the drivers automatically. > > – > Tim Roberts, xxxxx@probo.com > Providenza & Boekelheide, Inc. > > > — > NTDEV is sponsored by OSR > > For our schedule of WDF, WDM, debugging and other seminars visit: > http://www.osr.com/seminars > > To unsubscribe, visit the List Server section of OSR Online at > http://www.osronline.com/page.cfm?name=ListServer >