[comp.os.os2.programmer] LANMAN monolithic driver problem

neil@philmtl.philips.ca (Neil Pitman) (06/07/91)

I am writing an OSI protocol stack under LANMAN.  On our intellegent card the
protocol and the MAC layer resides on the card, so that the processing done on
the host is minimal (relaying NETBIOS commands and passing up interrupts).  On
the non-intellegent cards we use the NDIS interface which allows us to use any
of the supplied NDIS MAC drivers supplied with LANMAN.  All this works fine in
theory.  In practice, under certain conditions, LANMAN calls my NETBIOS
entry-point with less than 256 bytes of stack.  The interrupt stack is fine (I
use the RegisterStackUsage fn).  The stack segment is 0038 so it seems to be
specific to level 2.  As a solution I have installed my own stack.  This
alleviates the problem however now I experience protection violations in the
bowels of OS/2-LANMAN (e.g.  VerifyRamSemAddr) from some asynchronous task,
including the kernel debugger if I am stupid enough to set a breakpoint within
the stack-exchanged region.  (The programme is trying to access some goodies
from SS:FFDE and they are at that offset of segment 0038 - the original SS).
This obviously means that I committed some crime of omission in setting up my
personnel stack.

Although I want to find the solution, I really want the channel through which
to find the solution.  I have tried Microsoft ONLINE, local MicroSoft reps,
LANMAN people in Microsoft through OEM contacts, Microsoft University,
Microsoft Press.  Some of these failed, some are still working through.

I have the NDIS 2.0 spec and the Device Drivers Reference.  I do not have the
NDDK because it would only be peripherally helpful.  Have anyone suggestions on
how I should procede?


Neil Pitman
Sofware designer
Philips Electronics
Voice (514)744-8983
Fax   (514)744-5081