From: Thomas F. Divine [tdivine@pcausa.com]
Sent: Wednesday, April 25, 2001 8:49 AM
To: NT Developers Interest List
Subject: [ntdev] Re: Difference b/w TDI and Protocol Drivers

The Transport Data Interface (TDI) is a kernel-mode networking programming
interface. There are two basic "kinds" of TDI drivers:

1.) A "TDI Provider" (or "Transport Driver") - A driver that _provides_
networking services that conform to TDI. Transport drivers usually implement
a network protocol such as TCP/IP, NETBEUI or AppleTalk. Usually it is said
that this kind or driver has a "TDI upper-edge".

2.) A "TDI Client" - A driver that _uses_ the networking services provided
by a Transport driver. Ususally it is said that this kind of driver has a
"TDI lower-edge".


The NT 4.0 DDK "TDI" sample is a TDI Provider sample.


The term "Protocol Driver" can be easily confused in the Windows
environment. I generally use the following definition:

Windows Protocol Driver - Any driver that uses the "NDIS Library Functions
Used By Protocol Drivers" (See DDK documentation) to interface with
lower-level NIC drivers.


For example, if the driver uses NdisOpenAdapter I would call it a "Protocol
Driver" (or at least it would have a "Protocol Section").

In most cases a TDI Provider (i.e., Transport Driver) would also be a
"Protocol Driver" because it would use the NDIS Library Functions Used By
Protocol Drivers to interface with lower-level NIC drivers.

The DDK "Packet Driver" sample is simply a "Protocol Driver". It uses NDIS
Library Functions Used By Protocol Drivers to interface with lower-level NIC
drivers but it does _not_ have an upper-edge API that conforms to TDI.

Hope this helps.

Regards,

Thomas F. Divine

PCAUSA - Toolkits & Resources For Network Software Developers
NDIS Protocol - NDIS Intermediate - TDI Client
<http://www.pcausa.com> - <http://www.rawether.net>



----- Original Message -----
From: Chandandeep Singh Pabla <chandan.pabla@dcmtech.co.in>
To: NT Developers Interest List <ntdev@lists.osr.com>
Sent: Wednesday, April 25, 2001 7:44 AM
Subject: [ntdev] Difference b/w TDI and Protocol Drivers


> Hi all,
>
> Can anybody tell the precise difference b/w the Protocol and TDI drivers??
> I am bit confused about it as TDI drivers also calls same functions as
> Protocol drivers calls such as ndisregisterprotocol,ndisopen adapter
etc...
> Where does the exact difference comes into picture???
> I know that TDI drivers r used to provide consistent interface with
> applications but what exactly is the difference??
> TDI drivers also don't seems to have Iocreatesymboliclink which is there
in
> protocol drivers,then how does applications access tdi??
> I know the question might seems elementary but I am confused :-(
> It would be much helpful if u clarify these doubts with reference to
Samples
> in ddk4 i.e. packet driver( I suppose it is a protocol driver) and tdi
> driver sample.
>
> please help.
>
> Chandan



---
You are currently subscribed to ntdev as: GlennEverhart@FirstUSA.com
To unsubscribe send a blank email to leave-ntdev-247T@lists.osr.com