迷你埠驅動程式
NDIS 迷你埠驅動程式有兩個基本功能:
管理網路適配器 (NIC),包括透過 NIC 傳送和接收數據。
與較高層級的驅動程序互動,例如篩選驅動程式、中繼驅動程式和通訊協定驅動程式。
迷你埠驅動程式會透過 NDIS 連結庫與其 NIC 和較高層級的驅動程序通訊。 NDIS 連結庫會匯出一組完整的函式(NdisMXxx 和其他 NdisXxx 函式),以封裝迷你埠驅動程序必須呼叫的所有操作系統函式。 迷你埠驅動程式接著必須匯出一組進入點 (MiniportXxx 函式),NDIS 會自行呼叫,或代表較高層級的驅動程式來存取迷你埠驅動程式。
注意
如需 NDIS 驅動程式堆疊的詳細資訊,以及顯示這四個 NDIS 驅動程式類型之間關聯性的圖表,請參閱 NDIS 驅動程式堆疊。
下列傳送和接收作業說明迷你埠驅動程式與 NDIS 和更高層級驅動程式的互動:
當傳輸驅動程式有要傳輸的封包時,它會呼叫 NDIS 連結庫所導出的 NdisXxx 函式。 接著,NDIS 會呼叫迷你埠驅動程序導出的適當 MiniportXxx 函式,將封包傳遞至迷你埠驅動程式。 接著,迷你埠驅動程式會呼叫適當的 NdisXxx 函式,將封包轉送至 NIC 以進行傳輸。
當 NIC 收到尋址給本身的封包時,它可以張貼由 NDIS 或 NIC 迷你埠驅動程式處理的硬體中斷。 NDIS 會呼叫適當的 MiniportXxx 函式,通知 NIC 的迷你埠驅動程式。 迷你埠驅動程式會設定從 NIC 傳輸數據,然後藉由呼叫適當的 NdisXxx 函式,指出接收的封包是否存在至系結較高層級的驅動程式。
無連線和連線導向迷你埠驅動程式
NDIS 支援無連線環境和連線導向環境的迷你埠驅動程式。
無連線迷你埠驅動程式 可控制無連線網路媒體的 NIC,例如乙太網路。 無連線迷你埠驅動程式會進一步分為還原串行化和串行化驅動程式:
注意 所有 NDIS 6.0 和更新版本的驅動程式都會還原串行化。
還原串行化驅動程式 會將自己的 MiniportXxx 函式作業串行化,並在內部將所有傳入的傳送封包排入佇列。 這可大幅提升全雙工效能,前提是驅動程式的重要區段(一次只能執行單個線程的程式代碼)會保持很小。
串行化驅動程式 依賴 NDIS 來串行化其 MiniportXxx 函式的呼叫,以及管理其傳送佇列。
連線導向迷你埠驅動程式 可控制連線導向網路媒體的 NIC,例如 ISDN。 聯機導向的迷你埠驅動程式一律會還原串行化 -- 它們一律會串行化自己的 MiniportXxx 函式作業,並在內部排入所有傳入的傳送封包。
NDIS 迷你埠驅動程式可以有非 NDIS 下邊緣(請參閱下圖)。
透過非 NDIS 下邊緣,迷你埠驅動程式會使用總線的類別介面,例如通用序列總線(USB)來控制總線上的裝置。 迷你埠驅動程式會藉由將 I/O 要求封包傳送至匯線,或直接傳送至連接至總線的遠端裝置,來與裝置通訊。 在其上邊緣,迷你埠驅動程式會公開標準 NDIS 迷你埠驅動程式介面,讓迷你埠驅動程式能夠與過度的 NDIS 驅動程序通訊。