My objective is to load a TDI legacy driver above tcpip and below netbt.
Any
advice on the best method is appreciated. I have tried the following
approaches:
- Currently, I am using a reg file that creates an
HKLM\system\CCS\services\mydriver key. This key contains a value Group
set
to PNP_TDI and a value Tag set to 5. Subsequently, this reg file
overwrites HKLM\system\CCS\services\netbt\Tag to 6.
The Win2K states that all drivers must have an inf file, so my plan is
to
write a custom installer that performs the task of importing the reg
file.
The Win2K installations I have observed always have
HKLM\system\CCS\services\tcpip\Tag set to 4 and
HKLM\system\CCS\serivces\netbt\Tag set to 5. Just in case this is not
always
true, my installer checks for other drivers in the PNP_TDI group, sets
mydriver\Tag to the value of tcpip\Tag + 1, and then adjusts subsequent
xxxx\Tag settings as appropriate.
I have 3 concerns with this approach:
a. Not a Microsoft standard method.
b. Tag may not always be available.
c. On reboot, Win2K creates a root enumerator key: LEGACY_MYDRIVER. Upon
uninstall, I do not want to leave any traces of my driver. However, I
have not found a way to delete this key.
-
Using the Oney Ioctl sample inf as a template, I tried installing my
driver
using the install command in the Win2K DDK. This certainly loads my
driver,
but way to early. I experimented with DependOnService, Tag, and
LoadOrderGroup to load my driver at the appropriate time, but the PnP
manager ignores these settings. I think this is because the Oney sample
includes a hardware ID which indicates to the PnP manager to load my
driver
while walking the device tree which occurs immediately after the boot
drivers are loaded. -
Install my driver as a network filter driver by using the snetcfg
installer
from the Win2K DDK. This did not seem to work. Additionally, I tried
using
the filtject Oney dll to set
HKLM\system\CCS\Enum\Root\LEGACY_TCPIP\UpperFilters, but this did not
seem
to work either.
Thanks in advance,
Dave
You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com