目錄
網絡驅動程序接口規范
編輯網絡驅動程序接口規范(NDIS)是一個用于網絡接口控制器(NIC)的應用程序編程接口(API)。
規范
編輯它由微軟和3Com公司聯合開發,主要用于微軟的Windows系統。然而,開源的NDISwrapper和Project Evil驅動包裝項目允許許多符合NDIS的網卡在Linux、FreeBSD和NetBSD中使用。
NDIS形成了邏輯鏈路控制(LLC)子層,它是OSI數據鏈路層(第二層)的上層子層。因此,NDIS作為媒體訪問控制(MAC)子層(數據鏈路層的下層子層)和網絡層(第三層)之間的接口。
一個迷你端口可以與一個或多個協議相關聯。這意味著進入迷你端口的流量可能會被幾個協議驅動程序并行接收。例如,Winpcap在選定的miniport上添加了第二個協議驅動程序,以便捕獲進入的數據包。此外,還可以通過實現虛擬miniport驅動程序來模擬幾個虛擬網卡,從一個物理網卡發送和接收流量。虛擬miniport驅動使用的一個例子是添加虛擬網卡,每個網卡都有不同的VLAN。因為實現不能假設其他驅動收到了相同的緩沖區,所以必須把傳入的緩沖區視為只讀,改變數據包內容的驅動必須分配自己的緩沖區。NDIS Miniport驅動也可以使用Windows驅動模型接口來控制網絡硬件。
另一種驅動類型是NDIS中間驅動。中間驅動程序位于MAC和IP層之間,可以控制網卡接受的所有流量。在實踐中,中間驅動同時實現了迷你端口和協議接口。迷你端口驅動和協議驅動實際上與駐扎在中間驅動中的相應迷你端口和協議接口進行通信。這種設計可以在迷你端口和協議驅動之間添加幾個連鎖的中間驅動。因此,驅動廠商不能假設他們發送流量的接口是由鏈上的最后一個驅動實現的。為了編寫使用NDIS的應用程序,人們可以使用Microsoft's Windows Driver Kit (WDK)附帶的樣本。PassThru樣本是中間驅動的一個很好的起點,因為它實現了這種驅動類型所需的所有必要細節,但只是將流量傳遞給鏈上的下一個驅動。
內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/192690/