We are independent & ad-supported. We may earn a commission for purchases made through our links.
Advertiser Disclosure
Our website is an independent, advertising-supported platform. We provide our content free of charge to our readers, and to keep it that way, we rely on revenue generated through advertisements and affiliate partnerships. This means that when you click on certain links on our site and make a purchase, we may earn a commission. Learn more.
How We Make Money
We sustain our operations through affiliate commissions and advertising. If you click on an affiliate link and make a purchase, we may receive a commission from the merchant at no additional cost to you. We also display advertisements on our website, which help generate revenue to support our work and keep our content free for readers. Our editorial team operates independently of our advertising and affiliate partnerships to ensure that our content remains unbiased and focused on providing you with the best information and recommendations based on thorough research and honest evaluations. To remain transparent, we’ve provided a list of our current affiliate partners here.
Hardware

Our Promise to you

Founded in 2002, our company has been a trusted resource for readers seeking informative and engaging content. Our dedication to quality remains unwavering—and will never change. We follow a strict editorial policy, ensuring that our content is authored by highly qualified professionals and edited by subject matter experts. This guarantees that everything we publish is objective, accurate, and trustworthy.

Over the years, we've refined our approach to cover a wide range of topics, providing readers with reliable and practical advice to enhance their knowledge and skills. That's why millions of readers turn to us each year. Join us in celebrating the joy of learning, guided by standards you can trust.

What is an Interface Driver?

By S.A. Keel
Updated: May 16, 2024
Views: 20,953
Share

An interface driver is a small computer program, or a set of programs, that acts as a liaison between computer software and the hardware of a network interface card (NIC). NIC makers and programmers use a specific application programming interface (API) known as the network driver interface specification (NDIS). It sets forth all the rules necessary for a computer program, such as an operating system, to interact with an NIC. There are actually several types of interface drivers described under the NDIS but, in essence, NDIS's primary job is to get a couple of the open systems interconnection (OSI) model's layers to cooperate with one another.

The OSI model is made up of seven layers, some of which have multiple sub-layers. The first layer is the physical layer, which deals with the physical specifications for an NIC such as a universal serial bus (USB) dongle, an Ethernet card, a wireless adapter card, and so on. The second and third layers of the OSI model are where all the NDIS magic happens. The second layer is the data link layer and consists of two sub-layers, the upper referred to as the logical link control (LLC) and the lower named the media access control (MAC). A device driver handles the MAC sub-layer, while the interface driver handles the LLC sub-layer, providing an interface between it and the third layer of the OSI model, the network layer.

Working as an intermediary, an NDIS essentially wraps up all the confusing intricacy of a NIC's hardware and provides a set of functions for its interaction with the network protocols necessary for communication. A programmer simply has to follow the rules set forth in the NDIS to create the actual interface drivers. At the lower hardware level, these drivers are known as miniport drivers, while the upper level drivers are written using the NDIS API to handle core network protocols such as the Internet protocol (IP), Internet protocol security (IPsec), Internet control message protocol (ICMP), and Internetwork packet exchange (IPX), among others.

When network communication occurs via an NIC, the data bits are first received by the physical device and then, through the OSI model's architecture, the data are moved from the hardware up the different layers of the OSI model until they are presented in a format more easily comprehensible by the user. Thus, each layer of the model provides services for its neighbors. The data leave the first layer, the physical layer, and hits the MAC of the lower sub-layer in the second layer, where the device driver passes it along to the LLC. The LLC's protocol drivers then move it up to the network layer.

Another type of interface driver is the intermediate driver, which acts as something of a housing, containing interfaces for both miniport drivers and network protocol drivers. These intermediate drivers can then be chained together and provide the ability for the interface driver to control the traffic being received by the NIC. Intermediate drivers are useful for various needs, such as data filtering, load balancing, monitoring network traffic, and collecting statistical information. They also work well as a translator between older transport drivers and a miniport driver that talks to a media format the older driver cannot understand.

The NDIS was originally devised by Microsoft®, working in conjunction with 3Com®, so many hardware makers write their drivers to support Microsoft® operating systems first. As a result, the NDIS is limited to computer hardware architectures based on the Intel® 80386 family of either 32-bit or 64-bit processors. The free software movement has also developed a program, called NDISWrapper, that is capable of loading interface drivers originally developed for Microsoft® Windows® for use with with free, Unix®-like operating systems such as Linux®. Users of the Berkley Software Distributions (BSD) free derivatives, such as FreeBSD® and NetBSD®, also found the ability to use Windows® interface drivers through the use of software developed by a project known as Project Evil. The x86 hardware limitations of NDIS led to another project, developed by Apple and Novell®, called the open data-link interface (ODI), which provided much of the same rules and functionality as an NDIS but with a focus on Apple® Macintosh&; and Novell NetWare® systems.

Share
EasyTechJunkie is dedicated to providing accurate and trustworthy information. We carefully select reputable sources and employ a rigorous fact-checking process to maintain the highest standards. To learn more about our commitment to accuracy, read our editorial process.
Discussion Comments
Share
https://www.easytechjunkie.com/what-is-an-interface-driver.htm
Copy this link
EasyTechJunkie, in your inbox

Our latest articles, guides, and more, delivered daily.

EasyTechJunkie, in your inbox

Our latest articles, guides, and more, delivered daily.