DESCRIPTION
The ndis driver is a wrapper designed to allow binary Windows[rg] NDIS miniport network drivers to be used with
.Fx . The ndis driver is provided in source code form and must be combined with the Windows[rg] driver supplied with your network adapter. The ndis driver uses the ndisapi(9) kernel subsystem to relocate and link the Windows[rg] binary so that it can be used in conjunction with native code. The ndisapi(9) subsystem provides an interface between the NDIS API and the
.Fx networking infrastructure. The Windows[rg] driver is essentially fooled into thinking it is running on Windows[rg]. Note that this means the ndis driver is only useful on x86 machines. 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 ndis_driver_data.h file using the ndiscvt(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.