Hi Bryan & Dave,
Grateful for the detailed replies and NDIS debug tracing pointer…
As regards DriverEntry () not getting called after the protocol driver is
installed, I found the same behaviour with ndisuio.sys. The readme file
[uiosample.htm] asks us to do a “Net start ndisuio” before calling any
IOCTL of ndisuio.
So we are using the Service API to start the driver after it is installed.
We are doing this from within the notify object after the bindings are
done. We find the DriverEntry () and the BindAdapter handlers getting
called properly.
Is this the correct approach?
Are you aware of what happens in case of TCP/IP? For TCP/IP I could see
that after installing it, the BindAdapter handlers do get called.
Thanks & Regards,
Nitin
-----Original Message-----
From: Bryan Burgin [mailto:xxxxx@microsoft.com]
Sent: Saturday, December 22, 2001 6:33 AM
To: NT Developers Interest List
Cc: xxxxx@okena.com; xxxxx@wipro.com
Subject: RE: [ntdev] Re: Does a protocol driver also need 2 inf’s? Need
help
Nitin,
Protocol drivers only require a single .INF file. It will get loaded by
NDIS if it is bound to any miniports. It will then call your
BindAdapter handler for each miniport it is bound to with each adapter’s
name. It should bind to one or more miniports if any of its
Ndi\Interfaces\LowerRange entries match up to a miniport’s UpperRange.
In the XP DDK, see the protocol driver Network\Ndis\Ndisuio\Sys as an
example.
As Dave rightly pointed out, the PASSTHRU and MUX samples require two
INFs because they are implementing both a protocol edge and a miniport
edge.
If your DriverEntry isn’t getting called, you have reviewed the bindings
and are confident that your driver should be loading, this may indicate
a completely different problem. It’s possible that you are importing a
function that is not supported, and therefore, your driver isn’t loading
at all. You might want to run DUMPBIN /IMPORT YOURDRIVER.SYS and review
the list of imported functions. Compare it to a driver that works.
Then verify any imported functions by running DUMPBIN /EXPORTS
<sysdriver.sys>.
>
> Lastly, testing your driver on the checked build of the OS, or at least,
> with the checked build of NDIS.SYS, with NDIS tracing enabled may help
> verify that NDIS is attempting to load your driver and may indicate why
> it is failing. See:
>
> Q248413 [Win2K]
> INFO: NDIS Debug Tracing and Kernel Debugger Extensions
>
> For more information. Set DebugLevel to 0x00000000 and DebugSystems to
> 0xffffffff under HKLM\System\CurrentControlSet\Services\NDIS\Parameters
> (both DWORDs).
>
> Bryan S. Burgin
> xxxxx@microsoft.com
> bburgin x58049 40/2153
>
>
> -----Original Message-----
> From: Dave McCowan [mailto:xxxxx@okena.com]
> Sent: Friday, December 21, 2001 5:03 AM
> To: NT Developers Interest List
> Subject: [ntdev] Re: Does a protocol driver also need 2 inf’s? Need help
>
> Nitin,
>
> The passthru requires 2 inf files because it performs 2 functions: it
> behaves
> as a miniport on the upper edge and it behaves as a protocol on the
> lower edge.
> If your driver is a pure protocol driver, which means that it behaves as
> a
> protocol on the lower edge and supports TDI on the upper edge, then I
> would
> think 1 inf is appropritate.
>
> Be careful when swapping drivers. In addtion to providing equivalent
> functionality, the protocol characteristics for each driver must contain
> the
> same protocol name.
>
> Dave
>
> xxxxx@wipro.com wrote:
Have a NDIS 5.0 protocol driver along with a notify object and an inf
[with class as NetTrans]
After adding it from the Local Area Connection properties, the
DriverEntry & BindAdapterHandler are not getting called.
Is it that we need 2 inf’s for installing a transport protocol?
Similar to what we need for IM driver [Passthru]?
If I just replace the passthru.sys with my driver I find the driver
entry getting called. I also receive the NetEventBindsComplete PnP event.
Thanks,
Nitin
—
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</sysdriver.sys>
Nitin,
I believe win2k introduced the capability to load drivers using net start.
However, this is not a requirement. Most likely, the reason your driver
requires you to run net start has to do with the StartType. The ndisuio sample
specifies a StartType 0x3 which is manual; my guess is that your inf specifies
the same.
Dave
xxxxx@wipro.com wrote:
Hi Bryan & Dave,
Grateful for the detailed replies and NDIS debug tracing pointer…
As regards DriverEntry () not getting called after the protocol driver is
installed, I found the same behaviour with ndisuio.sys. The readme file
[uiosample.htm] asks us to do a “Net start ndisuio” before calling any
IOCTL of ndisuio.
So we are using the Service API to start the driver after it is installed.
We are doing this from within the notify object after the bindings are
done. We find the DriverEntry () and the BindAdapter handlers getting
called properly.
Is this the correct approach?
Are you aware of what happens in case of TCP/IP? For TCP/IP I could see
that after installing it, the BindAdapter handlers do get called.
Thanks & Regards,
Nitin
> -----Original Message-----
> From: Bryan Burgin [mailto:xxxxx@microsoft.com]
> Sent: Saturday, December 22, 2001 6:33 AM
> To: NT Developers Interest List
> Cc: xxxxx@okena.com; xxxxx@wipro.com
> Subject: RE: [ntdev] Re: Does a protocol driver also need 2 inf’s? Need
> help
>
>
>
> Nitin,
>
> Protocol drivers only require a single .INF file. It will get loaded by
> NDIS if it is bound to any miniports. It will then call your
> BindAdapter handler for each miniport it is bound to with each adapter’s
> name. It should bind to one or more miniports if any of its
> Ndi\Interfaces\LowerRange entries match up to a miniport’s UpperRange.
> In the XP DDK, see the protocol driver Network\Ndis\Ndisuio\Sys as an
> example.
>
> As Dave rightly pointed out, the PASSTHRU and MUX samples require two
> INFs because they are implementing both a protocol edge and a miniport
> edge.
>
> If your DriverEntry isn’t getting called, you have reviewed the bindings
> and are confident that your driver should be loading, this may indicate
> a completely different problem. It’s possible that you are importing a
> function that is not supported, and therefore, your driver isn’t loading
> at all. You might want to run DUMPBIN /IMPORT YOURDRIVER.SYS and review
> the list of imported functions. Compare it to a driver that works.
> Then verify any imported functions by running DUMPBIN /EXPORTS
> <sysdriver.sys>.
> >
> > Lastly, testing your driver on the checked build of the OS, or at least,
> > with the checked build of NDIS.SYS, with NDIS tracing enabled may help
> > verify that NDIS is attempting to load your driver and may indicate why
> > it is failing. See:
> >
> > Q248413 [Win2K]
> > INFO: NDIS Debug Tracing and Kernel Debugger Extensions
> >
> > For more information. Set DebugLevel to 0x00000000 and DebugSystems to
> > 0xffffffff under HKLM\System\CurrentControlSet\Services\NDIS\Parameters
> > (both DWORDs).
> >
> > Bryan S. Burgin
> > xxxxx@microsoft.com
> > bburgin x58049 40/2153
> >
> >
> > -----Original Message-----
> > From: Dave McCowan [mailto:xxxxx@okena.com]
> > Sent: Friday, December 21, 2001 5:03 AM
> > To: NT Developers Interest List
> > Subject: [ntdev] Re: Does a protocol driver also need 2 inf’s? Need help
> >
> > Nitin,
> >
> > The passthru requires 2 inf files because it performs 2 functions: it
> > behaves
> > as a miniport on the upper edge and it behaves as a protocol on the
> > lower edge.
> > If your driver is a pure protocol driver, which means that it behaves as
> > a
> > protocol on the lower edge and supports TDI on the upper edge, then I
> > would
> > think 1 inf is appropritate.
> >
> > Be careful when swapping drivers. In addtion to providing equivalent
> > functionality, the protocol characteristics for each driver must contain
> > the
> > same protocol name.
> >
> > Dave
> >
> > xxxxx@wipro.com wrote:
>
> Have a NDIS 5.0 protocol driver along with a notify object and an inf
> [with class as NetTrans]
>
> After adding it from the Local Area Connection properties, the
> DriverEntry & BindAdapterHandler are not getting called.
>
> Is it that we need 2 inf’s for installing a transport protocol?
> Similar to what we need for IM driver [Passthru]?
>
> If I just replace the passthru.sys with my driver I find the driver
> entry getting called. I also receive the NetEventBindsComplete PnP event.
>
> Thanks,
> Nitin
>
> —
> You are currently subscribed to ntdev as: xxxxx@okena.com
> To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
—
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</sysdriver.sys>
This has been around since the beginning of NT, not just in w2k.
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Dave McCowan
Sent: Thursday, December 27, 2001 6:51 AM
To: NT Developers Interest List
Subject: [ntdev] Re: Protocol Driver - how to avoid reboot ?
Nitin,
I believe win2k introduced the capability to load drivers using net
start. However, this is not a requirement. Most likely, the reason your
driver requires you to run net start has to do with the StartType. The
ndisuio sample specifies a StartType 0x3 which is manual; my guess is
that your inf specifies the same.
Dave
xxxxx@wipro.com wrote:
Hi Bryan & Dave,
Grateful for the detailed replies and NDIS debug tracing pointer…
As regards DriverEntry () not getting called after the protocol driver
is installed, I found the same behaviour with ndisuio.sys. The readme
file [uiosample.htm] asks us to do a “Net start ndisuio” before
calling any IOCTL of ndisuio.
So we are using the Service API to start the driver after it is
installed. We are doing this from within the notify object after the
bindings are done. We find the DriverEntry () and the BindAdapter
handlers getting called properly.
Is this the correct approach?
Are you aware of what happens in case of TCP/IP? For TCP/IP I could
see that after installing it, the BindAdapter handlers do get called.
Thanks & Regards,
Nitin
> -----Original Message-----
> From: Bryan Burgin [mailto:xxxxx@microsoft.com]
> Sent: Saturday, December 22, 2001 6:33 AM
> To: NT Developers Interest List
> Cc: xxxxx@okena.com; xxxxx@wipro.com
> Subject: RE: [ntdev] Re: Does a protocol driver also need 2 inf’s?
> Need help
>
>
>
> Nitin,
>
> Protocol drivers only require a single .INF file. It will get
> loaded by NDIS if it is bound to any miniports. It will then call
> your BindAdapter handler for each miniport it is bound to with each
> adapter’s name. It should bind to one or more miniports if any of
> its Ndi\Interfaces\LowerRange entries match up to a miniport’s
> UpperRange. In the XP DDK, see the protocol driver
> Network\Ndis\Ndisuio\Sys as an example.
>
> As Dave rightly pointed out, the PASSTHRU and MUX samples require
> two INFs because they are implementing both a protocol edge and a
> miniport edge.
>
> If your DriverEntry isn’t getting called, you have reviewed the
> bindings and are confident that your driver should be loading, this
> may indicate a completely different problem. It’s possible that you
> are importing a function that is not supported, and therefore, your
> driver isn’t loading at all. You might want to run DUMPBIN /IMPORT
> YOURDRIVER.SYS and review the list of imported functions. Compare
> it to a driver that works. Then verify any imported functions by
> running DUMPBIN /EXPORTS <sysdriver.sys>.
> >
> > Lastly, testing your driver on the checked build of the OS, or at
> > least, with the checked build of NDIS.SYS, with NDIS tracing enabled
> > may help verify that NDIS is attempting to load your driver and may
> > indicate why it is failing. See:
> >
> > Q248413 [Win2K]
> > INFO: NDIS Debug Tracing and Kernel Debugger Extensions
> >
> > For more information. Set DebugLevel to 0x00000000 and DebugSystems
> > to 0xffffffff under
> > HKLM\System\CurrentControlSet\Services\NDIS\Parameters
> > (both DWORDs).
> >
> > Bryan S. Burgin
> > xxxxx@microsoft.com
> > bburgin x58049 40/2153
> >
> >
> > -----Original Message-----
> > From: Dave McCowan [mailto:xxxxx@okena.com]
> > Sent: Friday, December 21, 2001 5:03 AM
> > To: NT Developers Interest List
> > Subject: [ntdev] Re: Does a protocol driver also need 2 inf’s? Need
> > help
> >
> > Nitin,
> >
> > The passthru requires 2 inf files because it performs 2 functions:
> > it behaves as a miniport on the upper edge and it behaves as a
> > protocol on the lower edge.
> > If your driver is a pure protocol driver, which means that it
behaves as
> > a
> > protocol on the lower edge and supports TDI on the upper edge, then
I
> > would
> > think 1 inf is appropritate.
> >
> > Be careful when swapping drivers. In addtion to providing equivalent
> > functionality, the protocol characteristics for each driver must
> > contain the same protocol name.
> >
> > Dave
> >
> > xxxxx@wipro.com wrote:
>
> Have a NDIS 5.0 protocol driver along with a notify object and an inf
> [with class as NetTrans]
>
> After adding it from the Local Area Connection properties, the
> DriverEntry & BindAdapterHandler are not getting called.
>
> Is it that we need 2 inf’s for installing a transport protocol?
> Similar to what we need for IM driver [Passthru]?
>
> If I just replace the passthru.sys with my driver I find the driver
> entry getting called. I also receive the NetEventBindsComplete PnP
> event.
>
> Thanks,
> Nitin
>
> —
> You are currently subscribed to ntdev as: xxxxx@okena.com
> To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
—
You are currently subscribed to ntdev as: xxxxx@storagecraft.com To
unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
—
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</sysdriver.sys>
In fact, w2k deprecated this facility for hardware drivers - PnP/WDM drivers do not obey net start/net stop, they require
enabling/disabling devices instead.
Max
----- Original Message -----
From: “Jamey Kirby”
To: “NT Developers Interest List”
Sent: Thursday, December 20, 2001 6:23 PM
Subject: [ntdev] Re: Protocol Driver - how to avoid reboot ?
> This has been around since the beginning of NT, not just in w2k.
>
> -----Original Message-----
> From: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com] On Behalf Of Dave McCowan
> Sent: Thursday, December 27, 2001 6:51 AM
> To: NT Developers Interest List
> Subject: [ntdev] Re: Protocol Driver - how to avoid reboot ?
>
>
> Nitin,
>
> I believe win2k introduced the capability to load drivers using net
> start. However, this is not a requirement. Most likely, the reason your
> driver requires you to run net start has to do with the StartType. The
> ndisuio sample specifies a StartType 0x3 which is manual; my guess is
> that your inf specifies the same.
>
> Dave
>
> xxxxx@wipro.com wrote:
>
> > Hi Bryan & Dave,
> > Grateful for the detailed replies and NDIS debug tracing pointer…
> >
> > As regards DriverEntry () not getting called after the protocol driver
>
> > is installed, I found the same behaviour with ndisuio.sys. The readme
> > file [uiosample.htm] asks us to do a “Net start ndisuio” before
> > calling any IOCTL of ndisuio.
> >
> > So we are using the Service API to start the driver after it is
> > installed. We are doing this from within the notify object after the
> > bindings are done. We find the DriverEntry () and the BindAdapter
> > handlers getting called properly.
> >
> > Is this the correct approach?
> > Are you aware of what happens in case of TCP/IP? For TCP/IP I could
> > see that after installing it, the BindAdapter handlers do get called.
> >
> > Thanks & Regards,
> > Nitin
> >
> > > -----Original Message-----
> > > From: Bryan Burgin [mailto:xxxxx@microsoft.com]
> > > Sent: Saturday, December 22, 2001 6:33 AM
> > > To: NT Developers Interest List
> > > Cc: xxxxx@okena.com; xxxxx@wipro.com
> > > Subject: RE: [ntdev] Re: Does a protocol driver also need 2 inf’s?
> > > Need help
> > >
> > >
> > >
> > > Nitin,
> > >
> > > Protocol drivers only require a single .INF file. It will get
> > > loaded by NDIS if it is bound to any miniports. It will then call
> > > your BindAdapter handler for each miniport it is bound to with each
> > > adapter’s name. It should bind to one or more miniports if any of
> > > its Ndi\Interfaces\LowerRange entries match up to a miniport’s
> > > UpperRange. In the XP DDK, see the protocol driver
> > > Network\Ndis\Ndisuio\Sys as an example.
> > >
> > > As Dave rightly pointed out, the PASSTHRU and MUX samples require
> > > two INFs because they are implementing both a protocol edge and a
> > > miniport edge.
> > >
> > > If your DriverEntry isn’t getting called, you have reviewed the
> > > bindings and are confident that your driver should be loading, this
> > > may indicate a completely different problem. It’s possible that you
>
> > > are importing a function that is not supported, and therefore, your
> > > driver isn’t loading at all. You might want to run DUMPBIN /IMPORT
> > > YOURDRIVER.SYS and review the list of imported functions. Compare
> > > it to a driver that works. Then verify any imported functions by
> > > running DUMPBIN /EXPORTS <sysdriver.sys>.
> > >
> > > Lastly, testing your driver on the checked build of the OS, or at
> > > least, with the checked build of NDIS.SYS, with NDIS tracing enabled
>
> > > may help verify that NDIS is attempting to load your driver and may
> > > indicate why it is failing. See:
> > >
> > > Q248413 [Win2K]
> > > INFO: NDIS Debug Tracing and Kernel Debugger Extensions
> > >
> > > For more information. Set DebugLevel to 0x00000000 and DebugSystems
>
> > > to 0xffffffff under
> > > HKLM\System\CurrentControlSet\Services\NDIS\Parameters
> > > (both DWORDs).
> > >
> > > Bryan S. Burgin
> > > xxxxx@microsoft.com
> > > bburgin x58049 40/2153
> > >
> > >
> > > -----Original Message-----
> > > From: Dave McCowan [mailto:xxxxx@okena.com]
> > > Sent: Friday, December 21, 2001 5:03 AM
> > > To: NT Developers Interest List
> > > Subject: [ntdev] Re: Does a protocol driver also need 2 inf’s? Need
> > > help
> > >
> > > Nitin,
> > >
> > > The passthru requires 2 inf files because it performs 2 functions:
> > > it behaves as a miniport on the upper edge and it behaves as a
> > > protocol on the lower edge.
> > > If your driver is a pure protocol driver, which means that it
> behaves as
> > > a
> > > protocol on the lower edge and supports TDI on the upper edge, then
> I
> > > would
> > > think 1 inf is appropritate.
> > >
> > > Be careful when swapping drivers. In addtion to providing equivalent
>
> > > functionality, the protocol characteristics for each driver must
> > > contain the same protocol name.
> > >
> > > Dave
> > >
> > > xxxxx@wipro.com wrote:
> >
> > Have a NDIS 5.0 protocol driver along with a notify object and an inf
>
> > [with class as NetTrans]
> >
> > After adding it from the Local Area Connection properties, the
> > DriverEntry & BindAdapterHandler are not getting called.
> >
> > Is it that we need 2 inf’s for installing a transport protocol?
> > Similar to what we need for IM driver [Passthru]?
> >
> > If I just replace the passthru.sys with my driver I find the driver
> > entry getting called. I also receive the NetEventBindsComplete PnP
> > event.
> >
> > Thanks,
> > Nitin
> >
> > —
> > You are currently subscribed to ntdev as: xxxxx@okena.com
> > To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
>
> —
> You are currently subscribed to ntdev as: xxxxx@storagecraft.com To
> unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
>
>
> —
> You are currently subscribed to ntdev as: xxxxx@storagecraft.com
> To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
>
—
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</sysdriver.sys>
Thanks Dave, James, Maxim.
You are correct. The start type in inf is manual.
But even if I make it Auto, the DriverEntry () does not get called
immediately after installation. It gets called after reboot / every
reboot.
Also, if I make the start type as Auto, chkinf gives a warning and suggests
me to change the type to Demand Start.
I want the DriverEntry() to get called immediately after installation so
that I don’t have to ask the user to reboot.
Regards,
Nitin
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
Specifying a start type of auto leaves the responsibility of starting your
driver to the service control manager. The SCM searches for services (drivers
and user level stuff) to start after the system startup phase. Since this phase
has passed by the time you install your driver, your driver is not loaded. I
think if you specify a start type of system (0x1), you’ll get your desired
behavior.
Dave
xxxxx@wipro.com wrote:
Thanks Dave, James, Maxim.
You are correct. The start type in inf is manual.
But even if I make it Auto, the DriverEntry () does not get called
immediately after installation. It gets called after reboot / every
reboot.
Also, if I make the start type as Auto, chkinf gives a warning and suggests
me to change the type to Demand Start.
I want the DriverEntry() to get called immediately after installation so
that I don’t have to ask the user to reboot.
Regards,
Nitin
You are currently subscribed to ntdev as: xxxxx@okena.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
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