.SYS
file, which contains the actual driver executable code,
and an
.INF
file, which provides the
Windows®
installer with device
identifier information and a list of driver-specific registry keys.
The
ndiscvt
utility can convert these files into a header file that is compiled
into
if_ndis.c
to create an object code module that can be linked into
the
NetBSD
kernel.
The
.INF
file is typically required since only it contains device
identification data such as PCI vendor and device IDs or PCMCIA
indentifier strings.
The
.INF
file may be optionally omitted however,
in which case the
ndiscvt
utility will only perform the conversion of the
.SYS
file.
This is useful for debugging purposes only.
.INF
file when performing conversion.
The
ndiscvt
utility will parse this file and emit a device identification
structure and registry key configuration structures which will be
used by the
ndis
driver and
ndisapi
kernel subsystem.
If this is omitted,
ndiscvt
will emit a dummy configuration structure only.
IFNAMSIZ
.
If no name is specified, the driver will use the
default a default name
(``
ndis
'').
ndis_driver_data.h
file and
an
ndis_driver.data.o
file.
The latter file will contain a copy of the
Windows®
.SYS
driver image encoded as a
NetBSD
ELF object file
(created with
objcopy(1)).
Turning the
Windows®
driver image directly into an object code file saves disk space
and compilation time.
if_ndis.c
module expects to find the driver data in a file called
ndis_driver_data.h
,
so it is recommended that this name be used.
.SYS
file.
This file must contain a
Windows®
driver image.
The
ndiscvt
utility will perform some manipulation of the sections within the
executable file to make runtime linking within the kernel a little
easier and then convert the image into a data array.
The
ndiscvt
utility was written by
Bill Paul <wpaul@windriver.com>.
The
lex(1)
and
yacc(1)
.INF
file parser was written by
Matthew Dodd <mdodd@FreeBSD.org>.