接口驅動程序是一個小型計算機程序或一組程序,在計算機軟件和網卡(NIC)的硬件之間起著聯絡作用。網卡制造商和程序員使用一種稱為網絡驅動程序接口規范(NDIS)的特定應用程序編程接口(API),它規定了計算機程序(如操作系統)進行交...
接口驅動程序是一個小型計算機程序或一組程序,在計算機軟件和網卡(NIC)的硬件之間起著聯絡作用。網卡制造商和程序員使用一種稱為網絡驅動程序接口規范(NDIS)的特定應用程序編程接口(API),它規定了計算機程序(如操作系統)進行交互所需的所有規則在NDIS下,實際上有幾種類型的接口驅動程序被描述,但本質上,NDIS的主要任務是讓兩個開放系統互連(OSI)模型層相互協作。

網絡驅動程序是控制用于將計算機連接到網絡的設備的軟件程序。
模型由七層組成,其中有些有多個子層,第一層是物理層,它處理網卡的物理規格,如通用串行總線(USB)加密狗、以太網卡、無線適配器卡,等等。OSI模型的第二層和第三層是所有NDIS魔法發生的地方。第二層是數據鏈路層,由兩個子層組成,上層稱為邏輯鏈路控制(LLC),下層稱為媒體訪問控制(MAC)。設備驅動程序處理MAC子層,而接口驅動程序處理MAC子層處理LLC子層,在它和OSI模型的第三層之間提供接口,網絡層。中間驅動程序可用于網絡上的數據過濾和負載平衡
NDIS作為一個中介,基本上解決了NIC硬件的所有令人困惑的復雜性,并為其與通信所需的網絡協議提供了一組功能。程序員只需遵循NDIS中規定的規則即可創建實際的接口驅動程序在較低的硬件級別,這些驅動程序稱為微型端口驅動程序,而上層驅動程序是使用NDIS API編寫的,用于處理核心網絡協議,如Internet協議(IP)、Internet協議安全性(IPsec)、Internet控制消息協議(ICMP)和網絡間數據包交換(IPX),
當通過網卡進行網絡通信時,數據位首先由物理設備接收,然后通過OSI模型的體系結構,數據從硬件向上移動到OSI模型的不同層,直到它們以用戶更容易理解的格式呈現。因此,模型的每一層都為其鄰居提供服務,數據離開第一層即物理層,到達第二層下層的MAC層,設備驅動程序將其傳遞給LLC。然后LLC協議驅動程序將其向上移動到網絡層。
另一種類型的接口驅動程序是中間驅動程序,它起到了外殼的作用,包含微型端口驅動程序和網絡協議驅動程序的接口。這些中間驅動程序可以鏈接在一起,并為接口驅動程序提供控制NIC接收的通信量的能力。中間驅動程序可用于各種需要,如數據過濾、負載平衡,監控網絡流量,收集統計信息。它們還可以很好地在較老的傳輸驅動程序和微型端口驅動程序之間進行轉換,后者與較老的驅動程序無法理解的媒體格式進行對話
NDIS最初是由Microsoft?與3Com?合作設計的,因此許多硬件制造商首先編寫了支持Microsoft?操作系統的驅動程序。因此,NDIS僅限于基于Intel?80386系列(32位或64位處理器)的計算機硬件體系結構。自由軟件運動還開發了一個名為NDISWrapper的程序,該程序能夠加載最初為Microsoft?Windows?開發的接口驅動程序,以便與,類似Unix?的操作系統,如Linux?。Berkley Software Distributions(BSD)的免費衍生產品(如FreeBSD?和NetBSD?)的用戶也發現了通過使用名為project Viil的項目開發的軟件來使用Windows?接口驅動程序的能力。NDIS的x86硬件限制導致了另一個項目,由Apple和Novell?開發,稱為開放式數據鏈路接口(ODI),它提供了與NDIS相同的規則和功能,但主要集中在Apple?Macintosh和Novell NetWare?系統上。