Detection of network interface cards is comprised of several layered components. At the upper level is the setup.inf installation script. Underlying setup.inf are Microsoft's and other vendor’s hardware-specific NIC detection DLLs. These DLLs are used to call netdtect.dll.
The exported functions in netdtect.dll should be used for all NIC-detection operations in detection DLLs.
Information about driver interface specifications in this section are primarily directed at ISA-bus devices, because the ISA bus does not have any configuration information associated with it. Information from other buses such as EISA, MCA, and PCI are stored directly into the Windows NT registry.
The system-supplied netdtect.sys provides the following functions:
A vendor’s NIC detection DLL typically uses the port and space access functions in netdtect.dll to attempt to locate specific NICs. It scans possible I/O port locations for a known signature or some other characteristic to detect a particular NIC. If NIC detection hangs the Windows NT operating system, the user is instructed to bypass automatic detection and explicitly specify the card instead.
Usually, NIC detection proceeds one new NIC at a time, with previous NICs having registered their resources with the I/O subsystem. Registry information is used to prevent access to ports or mapped memory in use by another driver.
Special routines are provided for NICs that cannot determine their interrupt without generating a physical interrupt. The detection DLL informs the driver to trap all interrupts for such a NIC that are not reserved in the current configuration. The detection DLL causes the NIC to generate an interrupt. A routine is provided for the detection DLL to determine which interrupts have occurred.
The following describe the exported functions of netdtect.dll.