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 :frowning:
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: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

Protocol drivers implement a transport protocol (like TCPIP). Theoritically
you could define any custom interface (via custom defined IOCTLs) but if you
do so, every user app or driver must explicitly use your codes to
communicate with the protocol driver in order to use services your protocol
driver offers. TDI is nothing more than such an interface, with the
difference that it is abstract (not bound with any kind of transport or
addressing scheme), is extensible and is consistent.

That’s all about TDI

regards,

johnny

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Chandandeep Singh
Pabla
Sent: Wednesday, April 25, 2001 1:44 PM
To: NT Developers Interest List
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 :frowning:
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: xxxxx@yahoo.de
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


Do You Yahoo!?

Get your free @yahoo.com address at http://mail.yahoo.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

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: - http:

----- Original Message -----
From: Chandandeep Singh Pabla
To: NT Developers Interest List
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 :frowning:
> 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: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com</http:></http:>

> 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

TDI drivers are drivers with TDI upper egde.
Protocol drivers are drivers with NDIS protocol lower egde.
There are plenty of drivers which are both TDI and protocols -
system-supplied IP stack is one.

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

There are three basic classes of TDI drivers. TDI Providers which are
protocol drivers. TDI Clients that sit over the TDI Providers. And
then TDI filters which are purely filter drivers that happen to be
layering on top of TDI Providers

Packet.sys is a protocol that has a private IOCTL interface on the upper
edge. Applications can talk directly to it via IOCTLs. The TCPIP.SYS
that ships with the OS has a TDI interface. In the Windows NT 4.0 DDK
there is a protocol called ST (for simple transport). This protocol has
a TDI upper edge which allows it plug into the Windows NT networking
stack at the TDI layer. TDI Clients can access the ST sample through
the TDI interface provided by TDI.SYS. AFD.SYS is a TDI client which
implements the kernel portion of the Winsock API. AFD can work with
protocol drivers that supply a TDI upper edge if a Winsock helper DLL
is supplied with the protocol. TDI protocols can also get NETBIOS to
bind on top of them.

If it is only your application accessing the protocol then a private
IOCTL interface would usually suffice. However if you want all Winsock
applications to work over your protocol then a TDI Protocol is the best
solution. - Eric

-----Original Message-----
From: Chandandeep Singh Pabla [mailto:xxxxx@dcmtech.co.in]
Sent: Wednesday, April 25, 2001 4:44 AM
To: NT Developers Interest List
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 :frowning:
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: xxxxx@microsoft.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