NDIS IM Driver on NT

Hi all,
I’m facing strange problem with my Deserialize NDIS IM on windows NT. On my debug screen I found the message:

*** Assertion failed: MINIPORT_LOCK_ACQUIRED(Miniport)
*** Source File: w:\nt\private\ntos\ndis\ndis40\mp..\efilter.c, line 2113

Break, Ignore, Terminate Process or Terminate Thread (bipt)? b

After I break here and dump the stack it gives me following frames…
kd> kp
ChildEBP RetAddr
f742f404 80169d42 ntoskrnl!DbgBreakPoint
f742f4e0 fcd0b66f ntoskrnl!RtlAssert+0x96
f742f540 fccfe572 NDIS!ethFilterDprIndicateReceivePacket+0x3c
f742f568 fccdac9d NDIS!ndisMLoopbackPacketX+0xdd
f742f57c fcbf5d41 NDIS!ndisMSendX+0x6a
f742f5a8 fcbe4677 tcpip!ARPSendBCast+0x269
f742f5d8 fcbe9339 tcpip!ARPTransmit+0xcd
f742f658 fcbf6a96 tcpip!IPTransmit+0x1ef
f742f6a8 fcbf6430 tcpip!UDPSend+0x246
f742f6c8 fcbf5fc0 tcpip!TdiSendDatagram+0x112
f742f704 fcbe4033 tcpip!UDPSendDatagram+0xa7
f742f71c 8011c9a9 tcpip!TCPDispatchInternalDeviceControl+0x173
Loading symbols for fcb91000 netbt.sys -> netbt.sys
f742f740 fcb97582 ntoskrnl!IofCallDriver+0x68
f742f760 fcb96995 netbt!TdiSendDatagram+0x1fd
f742f7a0 fcbc3c39 netbt!UdpSendDatagram+0xd3
f742f7ec fcb9f585 netbt!UdpSendNSBcast+0x34a
f742f838 fcba1b47 netbt!NbtRegisterName+0x44e
f742f8c4 fcbd4393 netbt!NbtOpenAddress+0x9af
f742f908 fcbce9f4 netbt!NTOpenAddr+0xe2
f742f928 8011c9a9 netbt!NbtDispatchCreate+0x137

Thanks for any help to further debug this?

– Sumit


eLitecore Technologies Pvt. Ltd.


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

On 09/26/01, “Sumit Pandya ” wrote:

Sumit,

I’ve got bad news for you. NT (NDIS4) doesn’t support deserialized
drivers. That was an NDIS 5 innovation. Sorry.

> Hi all,
> I’m facing strange problem with my Deserialize NDIS IM on windows NT. On my debug screen I found the message:
> --------------------------------------------------------------
> Assertion failed: MINIPORT_LOCK_ACQUIRED(Miniport)
>
Source File: w:\nt\private\ntos\ndis\ndis40\mp..\efilter.c, line 2113
>
> Break, Ignore, Terminate Process or Terminate Thread (bipt)? b
> --------------------------------------------------------------


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

Nope. NT4 supports deserialized drivers since SP3. Maybe it isn’t documented
and “supported” and there are small implementation differences between NT4
and w2k NDIS but deserialized drivers work on NT4 well. This is the only
good way how to implement NDIS IM driver.

There was some bugs in SP3 NDIS and I would recommend use at least SP4 for
such driver type.

Best regards,

Michal Vodicka
Veridicom
(RKK - Skytale)
[WWW: http://www.veridicom.com , http://www.skytale.com]


From: xxxxx@hotmail.com[SMTP:xxxxx@hotmail.com]
Reply To: NT Developers Interest List
Sent: Wednesday, September 26, 2001 2:49 PM
To: NT Developers Interest List
Subject: [ntdev] Re: NDIS IM Driver on NT

On 09/26/01, “Sumit Pandya ” wrote:
>
> Sumit,
>
> I’ve got bad news for you. NT (NDIS4) doesn’t support deserialized
> drivers. That was an NDIS 5 innovation. Sorry.
>
> > Hi all,
> > I’m facing strange problem with my Deserialize NDIS IM on windows
> NT. On my debug screen I found the message:
> > --------------------------------------------------------------
> > Assertion failed: MINIPORT_LOCK_ACQUIRED(Miniport)
> >
Source File: w:\nt\private\ntos\ndis\ndis40\mp..\efilter.c, line
> 2113
> >
> > Break, Ignore, Terminate Process or Terminate Thread (bipt)? b
> > --------------------------------------------------------------
>
> —
> You are currently subscribed to ntdev as: xxxxx@rkk.cz
> 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

> NT4 supports deserialized drivers since SP3. Maybe it isn’t documented and “supported”

If it isn’t documented and “supported”, I would claim that it’s not
supported. Microsoft claims this is an NDIS 5 innovation
(http://www.microsoft.com/hwdev/devdes/ndis5.htm).

Remember just because it “works” doesn’t mean you should do it. Remember
the flame war between Albert and everyone else about diddling the IDT? You
can do it, but it’s not “documented and ‘supported’”. Same thing with
deserialized and NDIS 4.


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

> ----------

From: xxxxx@hotmail.com[SMTP:xxxxx@hotmail.com]
Reply To: NT Developers Interest List
Sent: Wednesday, September 26, 2001 6:40 PM
To: NT Developers Interest List
Subject: [ntdev] Re: NDIS IM Driver on NT

> NT4 supports deserialized drivers since SP3. Maybe it isn’t documented
and “supported”

If it isn’t documented and “supported”, I would claim that it’s not
supported. Microsoft claims this is an NDIS 5 innovation
(http://www.microsoft.com/hwdev/devdes/ndis5.htm).

Clarification: after NT4 SP3 release Microsoft made available the first NDIS
IM driver sample named ImSamp. IIRC it was in July 1997. This sample was
deserialized driver and containied a short document which described it.
There was also updated ndis.h file with necessary definitions. ImSamp is
still available at ms web site. So is it documented or not?

I believe deserialized support was added to SP3 because they tried to write
the documented full-duplex IM driver and suprisingly found it is almost
impossible. It was possible (I wrote such a beast) but there were situations
which couldn’t be handled correctly and it wasn’t very efficient. Some parts
of ImSamp code seemed as written for serialized and changed for deserialized
later (don’t ask me, I examined it short after release and my memory
leaked). So it seems as SP3 NDIS and ImSamp were written in parallel to make
IM drivers finally working. But it is pure speculation.

Remember just because it “works” doesn’t mean you should do it. Remember
the flame war between Albert and everyone else about diddling the IDT?
You
can do it, but it’s not “documented and ‘supported’”. Same thing with
deserialized and NDIS 4.

Quite different things. We speak about using semi-documented OS interface
and Alberto’s idea ignored OS at all and could cause unexpected problems to
other drivers. In this case using documented approach (i.e. full duplex
drivers) could cause much more problems and compromise system stability than
using the second possibility.

BTW, try to examine commercial firewalls and other NDIS IM drivers for NT4.
They are both deserialized drivers or even full MAC IM drivers which were
never documented (the only possibility for NT 3.51).

Best regards,

Michal Vodicka
Veridicom
(RKK - Skytale)
[WWW: http://www.veridicom.com , http://www.skytale.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

> Nope. NT4 supports deserialized drivers since SP3. Maybe it isn’t documented

Yes, they also started to support CoNDIS nearly that time.

Max


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