-
Notifications
You must be signed in to change notification settings - Fork 7
How It Works!
The idea is that FreeBSD users can use Windows(r) network drivers, both wireless and ethernet ones.
The ndisgen(8) utility is creating kernel module from .INF and .SYS files, and optional firmware files.
In .INF file is usually stored table of devices which driver support and table of registry entries for each device, registry entries are translated to our sysctl(9) subtree, which user can modify with sysctl(8). In .SYS file resides miniport driver.
Some .INF files are in ASCII, and some are in UNICODE encoding. ndiscvt(8) accepts only ASCII encoding, this means if for some reason, detection of UNICODE .INF file or its conversion to ASCII encoding fails creating of useful kernel module will fail too.
Once kernel module is created and loaded with kldload(8), NDISulator will run miniport driver's DriverEntry() routine. If all goes well, if_ndis(4) submodule of NDISulator may call own NdisAddDevice() routine to notify miniport driver of available devices in our system.
If all goes well, ndis device should appear. From now on, you can use ifconfig(8) utility in same way as with native drivers to configure ndis device.