I have been doing more investigation using the NDIS Filter IM driver
sample from DifX 1.0 and this is what I have found. Note that I'm
actually using dpinst.exe from DifXTools version 1.1, but using the
sample from 1.0 since 1.1 only includes an NDIS Mux IM driver.
If I have a clean XP machine (no versions of an IM driver previously
installed) then using DPINST fails. An NDIS IM Filter driver package
requires the miniport .inf file to be placed into a subdirectory of the
protocol .inf file.
So, using the IM Filter Sample from the 1.0 kit, the file and directory
structure is:
dpinst.exe
netsf.inf
passthru.sys
NetworkIntermediate.cat
miniport\netsf_m.inf
Running dpinst.exe causes netsf.inf and passthru.sys to be copied to the
driver store directory, but not the miniport\netsf_m.inf. When dpinst
installs netsf.inf it creates OEMxx.inf and OEMxx.pnf entries in
%windir%\inf. A netsf_m.inf entry (or corresponding OEMyy.inf and .pnf)
is never created in %windir%\inf. Therefore, when netsf.inf is installed
it never binds the miniport component of the NDIS IM driver because it
can't find the miniport INF file, netsf_m.inf.
According to dpinst.log the installation is successful, but the miniport
is not bound.
Note that if I pre-copy over miniport\netsf_m.inf to %windir%\inf then
the installation proceeds as expected.
Any ideas? I might have to brute-force this and copy the miniport INF
file manually before the driver install occurs.
Dan