基本信息
NDIS(Network Driver Interface Specification)是網路驅動程式接口規範的簡稱。它橫跨傳輸層、網路層和數據鏈路層,定義了網卡或網卡驅動程式與上層協定驅動程式之間的通信接口規範,禁止了底層物理硬體的不同,使上層的協定驅動程式可以和底層任何型號的網卡通信。
NDIS為網路驅動程式創建了一個完整的開發環境,只需調用NDIS函式,而不用考慮作業系統的核心以及與其他驅動程式的接口問題,從而使得網路驅動程式可以從與作業系統的複雜通訊中分離,極大地方便了網路驅動程式的編寫。另外,利用NDIS的封裝特性,可以專注於一層驅動的設計,減少了設計的複雜性,同時易於擴展驅動程式棧。
驅動程式
NDIS支持三種類型的網路驅動程式:
網卡驅動程式(NICdrivers)
網卡驅動程式是網卡與上層驅動程式通信的接口,它負責接收來自上層的數據包,或將數據包傳送到上層相應的驅動程式,同時它還完成處理中斷等工作。
中間驅動程式
(InterMediateProtocolDrivers):中間驅動程式位於網卡驅動程式和協定驅動程式之間,它向上提供小連線埠(Minport)函式集,向下提供協定(protocol)函式集,因此對於上層驅動程式而言,它是小連線埠驅動程式。對於底層的驅動程式,它是協定驅動程式。
協定驅動程式
(Upper Level Protocol Drivers):協定驅動程式執行具體的網路協定,如IPX/SPX、TCP/IP等。協定驅動程式為套用層客戶程式提供服務,接收來自網卡或中間驅動程式的信息。