NAME
ndis
—
NDIS miniport driver wrapper
SYNOPSIS
options NDISAPI
device ndis
device wlan
DESCRIPTION
Thendis
driver is a wrapper designed to allow binary
Windows® NDIS miniport network drivers to be used with
DragonFly. The ndis
driver is
provided in source code form and must be combined with the Windows®
driver supplied with your network adapter. The ndis
driver uses the ndisapi
kernel subsystem to relocate
and link the Windows® binary so that it can be used in conjunction with
native code. The ndisapi
subsystem provides an
interface between the NDIS API and the DragonFly
networking infrastructure. The Windows® driver is essentially fooled
into thinking it is running on Windows®.
To build a functional driver, the user must have a copy of the
driver distribution media for his or her card. From this distribution, the
user must extract two files: the .SYS file
containing the driver binary code, and its companion
.INF file, which contains the definitions for
driver-specific registry keys and other installation data such as device
identifiers. These two files can be converted into a kernel module file
using the
ndisgen(8) utility. This file contains a binary image of the driver
plus registry key data. When the ndis
driver loads,
it will create
sysctl(3) nodes for each registry key extracted from the
.INF file.
The ndis
driver is designed to support
mainly Ethernet and wireless network devices with PCI, PCMCIA and USB bus
attachments. (Cardbus devices are also supported as a subset of PCI.) It can
support many different media types and speeds. One limitation however, is
that there is no consistent way to learn if an Ethernet device is operating
in full or half duplex mode. The NDIS API allows for a generic means for
determining link state and speed, but not the duplex setting. There may be
driver-specific registry keys to control the media setting which can be
configured via the
sysctl(8) command.
DIAGNOSTICS
- ndis%d: watchdog timeout
- A packet was queued for transmission and a transmit command was issued, however the device failed to acknowledge the transmission before a timeout expired.
SEE ALSO
altq(4), arp(4), ifmedia(4), netintro(4), ng_ether(4), wlan(4), ifconfig(8), ndis_events(8), ndiscvt(8), ndisgen(8), wpa_supplicant(8)
NDIS 5.1 specification, http://www.microsoft.com.
HISTORY
The ndis
device driver first appeared in
FreeBSD 5.3.
AUTHORS
The ndis
driver was written by
Bill Paul
<wpaul@windriver.com>.