|
|
DocumentationSee the Network Drivers section of DDK Help Files provided with each of the DDK versions. Each DDK Help File describes a different NDIS version, so you will need to become familiar with each of them.
| |||||||||||||
Sample NDIS Protocol DriversMicrosoft provides basic NDIS protocol drivers with the
DDKs:
|
Note 1: A reader has pointed out that PCAUSA does not mention the potential use is NDIS 5.0 protocol drivers for Windows 98 and Windows ME. Certainly this is an omission that should be addressed.
Windows 98 and Windows ME do provide support for "NDIS 5.0". This is certainly true in the context of NDIS miniport (adapter) drivers that interface only to the NDIS wrapper. However, use of a NDIS 5.0 protocol driver on these platforms is not straightforward.
Here are some of the points that led PCAUSA to adopt the VxD model for NDIS protocol drivers from Windows 95 through Windows ME:
|
A NDIS 3.1 protocol driver is the only option available for the Windows 95 platform. | |
|
A single NDIS 3.,1 protocol driver can be used successfully on Windows 95, Windows 98. Windows 98 SE and Windows ME. | |
|
The NDIS 5.0 protocol model offers absolutely no functional benefit for a packet collection driver on these platforms. | |
|
The NDIS 5.0 support provided on Windows 98 through Windows ME varies from platform to platform. In particular, the set of NDIS wrapper functions that is exported varies on each platform. This introduces the additional complexity of implementing runtime detection of platform NDIS function differences. | |
|
A NDIS 5.0 protocol driver cannot be dynamically loaded without the use of a companion VxD driver that uses undocumented functions to load the NDIS 5.0 protocol driver. | |
|
A NDIS 5.0 protocol driver can only use the limited set of WDM functions in the implementation of its user mode API (e.g. DeviceIoControl interface). A NDIS 3.1 protocol driver can use the complete set of VxD services in the implementation of its user mode API. As a specific example, a Vxd-based NDIS protocol driver can provide the user mode application with an API that uses asynchronous procedure callbacks (APCs - similar to the ReadFileEx function); this sort of API cannot be implemented using WDM services (AFAIK). |
Note 2: The Windows XP DDK included the NDIS User I/O sample (NDISUIO) under the directory \WINDDK\####\src\network\ndis\ndisuio. The NDISUIO driver is, actually, a built-in component of the Windows XP and higher operating system. It is used to support the Microsoft Wireless Zero Configuration (WZC) wireless connection management facility. Do NOT attempt to use the NDISUIO driver from your own application. You can use the NDISUIO source as the starting point for your own driver. See the NDIS.com articles NDIS User Mode I/O (NDISUIO) Version Dependencies and What are the steps needed to rename Microsoft NDISPROT driver?.
Other Resources |
The next topic on the Tour describes the Rawether for Windows solution to this problem.
Mailing Lists ·
PCAUSA Newsletter
·
PCAUSA Discussion List
|