Intermediate Driver Platform-Specific Differences

Hi,

In Windows 98 and ME the following functions are not supported:

NdisIMcopySendPerPacketInfo
NdisIMCopySendCompletePerPacketInfo
NdisIMCancelInitializeDeviceInstance

I developed NDIS Intermediate driver with abvoe calls for win2000 OS. Now I have to use the same in windows 98 and ME. Please tell me what function calls I have to use for windows 98 and ME, so that my driver will work for 98 and ME.

Regards,

Girish
Get Your Private, Free E-mail from Indiatimes at http://email.indiatimes.com
Buy Music, Video, CD-ROM, Audio-Books and Music Accessories from http://www.planetm.co.in

I think both NdisIMCopySendPerPacketInfo() and
NdisIMCopySendCompletePerPacketInfo () can easily be written by
yourself.

If there is no NdisIMCancelInitializeDeviceInstance(), there is
probably no way other than to wait until the appropriate
MiniportInitialize() function is called.

Stephan

On Mon, 25 Feb 2002 12:57:24 +0530, “girish_gurunathan”
wrote:

>Hi,
>
>
>In Windows 98 and ME the following functions are not supported:
>
>NdisIMcopySendPerPacketInfo
>NdisIMCopySendCompletePerPacketInfo
>NdisIMCancelInitializeDeviceInstance
>
>I developed NDIS Intermediate driver with abvoe calls for win2000 OS.
>Now I have to use the same in windows 98 and ME. Please tell me what
>function calls I have to use for windows 98 and ME, so that my driver
>will work for 98 and ME.
>
>Regards,
>Girish

The NDIS functions that are are version-dependent also. A partial lsit is
below. I found Walter Oney’s “WDM Check” utility http://www.oneysoft.com/
helpful in finding unsupported NDIS functions. Just copy your driver binary
to the 9X/ME platform and run WDM Check against it.

Perhaps a good start would be to set your ProtocolReceivePacket handler to
NULL and just handle ProtocolReceive. Then fold in ProtocolReceivePacket if
you desire.

Also see Microsoft KB Articles:

NDIS Binary-Compatibility on Windows 98 and Windows 2000 (Q198582)
http://support.microsoft.com/default.aspx?scid=kb;EN-US;q198582

There may be some additional MS KB Articles of interest.

Of course, instalation of the driver is the killer. IMHO that makes use of
an NDIS IM driver almost impractical on 9X/ME and NT.

NOTE:NDIS_PACKET and possibly other structures (NDIS_REQUEST, etc.)
are defined differently on 9X/Me, NT, W2K.

Good luck,

Thomas F. Divine

PCAUSA - Tools & Resources For Network Software Developers
NDIS Protocol/Intermediate/Hooking - TDI Client/Filter
http: - http:

Windows 98 V4.10.1998
=====================
Does not support:
NdisMRegisterDevice
NdisReEnumerateProtocolBindings
NdisIMAssociateMiniport
NdisMRegisterUnloadHandler
NdisIMCopySendPerPacketInfo
NdisIMCopySendCompletePerPacketInfo
NdisGetReceivedPacket

Windows 98 SE V4.10.2222 A
==========================
Does not support:
NdisIMCopySendPerPacketInfo
NdisMRegisterUnloadHandler
NdisIMCopySendCompletePerPacketInfo

Windows Millennium V4.90.3000
=============================
No missing links…

===============================================
“girish_gurunathan” wrote in message
news:xxxxx@ntdev…
Hi,
In Windows 98 and ME the following functions are not supported:
NdisIMcopySendPerPacketInfo
NdisIMCopySendCompletePerPacketInfo
NdisIMCancelInitializeDeviceInstance
I developed NDIS Intermediate driver with abvoe calls for win2000 OS. Now I
have to use the same in windows 98 and ME. Please tell me what function
calls I have to use for windows 98 and ME, so that my driver will work for
98 and ME.
Regards,
Girish</http:></http:>

> ----------

From: xxxxx@hotmail.com[SMTP:xxxxx@hotmail.com]
Reply To: xxxxx@lists.osr.com
Sent: Monday, February 25, 2002 6:08 PM
To: xxxxx@lists.osr.com
Subject: [ntdev] Re: Intermediate Driver Platform-Specific
Differences

Perhaps a good start would be to set your ProtocolReceivePacket handler to
NULL and just handle ProtocolReceive.

This is probably the best idea. Who cares about w9x performance? I doubt
there would be real difference, “OS” itself is so slow and serialized and
obsolete and nasty and… :wink:

It is exactly what I did when needed NDIS filter on w9x. It was for PPP only
where performance isn’t a problem. Anybody uses Gigabit Ethernet with w9x?

Of course, instalation of the driver is the killer. IMHO that makes use of
an NDIS IM driver almost impractical on 9X/ME and NT.

Until you have already written working INF files. For w9x Bryan Burgin
posted it here several times. However, I still believe hooking driver is
better for w9x :wink:

NOTE:NDIS_PACKET and possibly other structures (NDIS_REQUEST, etc.)
are defined differently on 9X/Me, NT, W2K.

I recall problems with protocol reserved area in NDIS_PACKET. Conditional
compilation solves problem; it is easier to have two different versions than
trying to make one binary compatible driver.

Best regards,

Michal Vodicka
STMicroelectronics Design and Application s.r.o.
[michal.vodicka@st.com, http:://www.st.com]

“Michal Vodicka” wrote in message
news:xxxxx@ntdev…
>
> > ----------
> > From: xxxxx@hotmail.com[SMTP:xxxxx@hotmail.com]
> > Reply To: xxxxx@lists.osr.com
> > Sent: Monday, February 25, 2002 6:08 PM
> > To: xxxxx@lists.osr.com
> > Subject: [ntdev] Re: Intermediate Driver Platform-Specific
> > Differences
> >
> > Of course, instalation of the driver is the killer. IMHO that makes use
of
> > an NDIS IM driver almost impractical on 9X/ME and NT.
> >
> Until you have already written working INF files. For w9x Bryan Burgin
> posted it here several times. However, I still believe hooking driver is
> better for w9x :wink:
>
Building a NDIS IM driver that works is the easy part for 98 (and NT for
that mater).

Bryan provided an INF fro Windows ME. Thanks, Bryan!!! :slight_smile:

HOWEVER, as provided the instructions include manually editing the registry
after PARTIALLY installing via INF. Miles away from a working installer that
can automatically deal with even minor changes to the NCPA configuration
(card ejection, replacement, etc…).

Regards,

Thomas F. Divine

PCAUSA - Tools & Resources For Network Software Developers
NDIS Protocol/Intermediate/Hooking - TDI Client/Filter
http: - http:</http:></http:>

> ----------

From: xxxxx@hotmail.com[SMTP:xxxxx@hotmail.com]
Reply To: xxxxx@lists.osr.com
Sent: Monday, February 25, 2002 9:19 PM
To: xxxxx@lists.osr.com
Subject: [ntdev] Re: Intermediate Driver Platform-Specific
Differences

Building a NDIS IM driver that works is the easy part for 98 (and NT for
that mater).

So why there is so much questions about it? :wink:

Bryan provided an INF fro Windows ME. Thanks, Bryan!!! :slight_smile:

HOWEVER, as provided the instructions include manually editing the
registry
after PARTIALLY installing via INF. Miles away from a working installer
that
can automatically deal with even minor changes to the NCPA configuration
(card ejection, replacement, etc…).

Really? I never examined it in details. In this case hooking driver is
definitely a win for w9x.

Best regards,

Michal Vodicka
STMicroelectronics Design and Application s.r.o.
[michal.vodicka@st.com, http:://www.st.com]

“Michal Vodicka” wrote in message
news:xxxxx@ntdev…
>
> > ----------
> > From: xxxxx@hotmail.com[SMTP:xxxxx@hotmail.com]
> > Reply To: xxxxx@lists.osr.com
> > Sent: Monday, February 25, 2002 9:19 PM
> > To: xxxxx@lists.osr.com
> > Subject: [ntdev] Re: Intermediate Driver Platform-Specific
> > Differences
> >
> >
> > Building a NDIS IM driver that works is the easy part for 98 (and NT for
> > that mater).
> >
> So why there is so much questions about it? :wink:
>
Well, because there are several questions that aren’t perfectly clear
(although they have been discussed several times on this list and
elsewhere).

But after those issues are dealt with then installer is the hurdle that will
keep the product from shipping…

Thos

> ----------

From: xxxxx@hotmail.com[SMTP:xxxxx@hotmail.com]
Reply To: xxxxx@lists.osr.com
Sent: Monday, February 25, 2002 9:34 PM
To: xxxxx@lists.osr.com
Subject: [ntdev] Re: Intermediate Driver Platform-Specific
Differences

> > Building a NDIS IM driver that works is the easy part for 98 (and NT
for
> > that mater).
> >
> So why there is so much questions about it? :wink:
>
Well, because there are several questions that aren’t perfectly clear
(although they have been discussed several times on this list and
elsewhere).

Or maybe it is easy when you understand NDIS well but it is hard for
beginner to learn NDIS from docs? My first NDIS job was IM driver for both
NT 3.51 and NT4 and it was far from easy then (1996/7). Well, DDK docs was
really improved since then. After this experience it was really easy to
write the same thing for w2k and hooking driver (using your hooking code)
for w9x. Experience is the key and I’m not quite sure if ImSamp and PassThru
examples really help in this area. It may seem it is possible to write an IM
driver without real NDIS understaning which isn’t the case.

Best regards,

Michal Vodicka
STMicroelectronics Design and Application s.r.o.
[michal.vodicka@st.com, http:://www.st.com]

“Michal Vodicka” wrote in message
news:xxxxx@ntdev…
>
> > ----------
> > From: xxxxx@hotmail.com[SMTP:xxxxx@hotmail.com]
> > Reply To: xxxxx@lists.osr.com
> > Sent: Monday, February 25, 2002 9:34 PM
> > To: xxxxx@lists.osr.com
> > Subject: [ntdev] Re: Intermediate Driver Platform-Specific
> > Differences
> >
> It may seem it is possible to write an IM
> driver without real NDIS understaning which isn’t the case.
>
I think that this is actually true for any filter driver.

A working “PassThru” filter of any type is, of course, a necessary first
step. But it’s a baby step.

In NDIS, TDI and file system filters (for example) the filter writer may
have little insight (other than experimental or observational) into the
operation of components above or below the filter. In addition, filter
writing often requires use of techniques that aren’t even necessary in
top-level or lowest-level components (e.g., re-wrapping IRPs or
NDIS_PACKETs).

Throw in cross-platform issues like the original poster mentioned and it is
easy to become bogged down.

Thos