共用方式為


遠端 NDIS 概念和定義

本節概述通道上的遠端 NDIS 需求,以及用來在主機與遠端 NDIS 裝置之間進行通訊的較低層驅動程式。 本節也會說明裝置狀態轉換和主要作業,例如初始化、停止和重設。

  • 控制通道

    控制通道必須可靠,並確保循序傳遞。 除了網路資料封包的傳輸之外,它會用於所有通訊。 除了 REMOTE_NDIS_HALT_MSGREMOTE_NDIS_INDICATE_STATUS_MSG之外,所有必要的控制訊息都是主機起始的要求和回應交換。 裝置必須在每個匯流排指定的逾時期間內回應。

  • 資料通道

    資料通道專用於網路資料封包的傳輸。 它可能包含多個子通道 (,例如,針對適當匯流排所定義的不同服務品質) 。

  • 初始化和終止

    控制項和資料通道會初始化並設定為適當的匯流排所指定。 主機會將 REMOTE_NDIS_INITIALIZE_MSG 訊息傳送至遠端 NDIS 裝置。 遠端 NDIS 裝置提供其類型的相關資訊, (無連線或連線導向的) 、支援的中型和版本,以及回應訊息 REMOTE_NDIS_INITIALIZE_CMPLT的版本。

    主機或遠端 NDIS 裝置可以透過 REMOTE_NDIS_HALT_MSG 訊息卸載通道。 所有未處理的要求和封包都會在收到此訊息時捨棄。

  • 裝置狀態定義

    在匯流排層級初始化之後,裝置會處於 RNDIS 未初始化的狀態。 收到 REMOTE_NDIS_INITIALIZE_MSG ,並以狀態為 RNDIS_STATUS_SUCCESS 的REMOTE_NDIS_INITIALIZE_CMPLT回應時,裝置會進入 RNDIS 初始化狀態。

    收到REMOTE_NDIS_SET_MSG指定OID_GEN_CURRENT_PACKET_FILTER的非零篩選值時,裝置會進入 RNDIS-data-initialized 狀態。

    當處於 RNDIS-data-initialized 狀態時,接收REMOTE_NDIS_SET_MSG指定零個篩選值,OID_GEN_CURRENT_PACKET_FILTER會將裝置強制回到 RNDIS 初始化狀態。

    隨時接收REMOTE_NDIS_HALT_MSG或匯流排層級中斷連線或硬重設,會強制裝置進入 RNDIS 未初始化的狀態。

  • Halt

    每當裝置處於 RNDIS 初始化或 RNDIS-data-initialized 狀態時,主機電腦可能會藉由將REMOTE_NDIS_HALT_MSG傳送至裝置來終止裝置的遠端 NDIS 功能。

  • 重設通道

    發生錯誤時,會重設通道,例如訊息逾時。 當裝置處於 RNDIS 初始化狀態時,主機可以隨時起始重設,方法是將訊息 REMOTE_NDIS_RESET_MSG 傳送至裝置,而裝置必須在完成重設時傳送回應訊息。 例如,當發生錯誤時,主機可能會起始重設,例如訊息逾時。

    請注意,這是一種軟重設,例如,任何處理 (的 VM,) 重設之後仍可繼續有效。 遠端 NDIS 裝置會在重設程式中捨棄所有未處理的要求和封包。 遠端裝置可能會重設其中一些硬體元件,但讓通道保持不變。

    如果遠端 NDIS 裝置執行重新開機,則此事件相當於 「移除」,後面接著「新增」隨插即用事件。 主機 NDIS 迷你埠驅動程式將會停止並移除,並新增並啟動新的實例。 所有匯流排層級和遠端 NDIS 初始化都會重新執行。 遠端 NDIS 裝置可能會在發生重大裝置失敗時自行重新開機。

  • 流程式控制制

    遠端 NDIS 裝置可能需要執行流程式控制制,以防止主機以封包溢位其資料緩衝區。 任何流量控制布建或需求都是特定的匯流排。

  • 數值位元組排序

    Remote NDIS 訊息中的所有數值都必須以小到尾格式編碼, (最不重要的位元組第一個) 。

  • NDIS 訊息封裝

    在原生匯流排訊息或基本類型中封裝 NDIS 訊息的方式,沒有遠端 NDIS 規格。