Miniport 驅動程式的配接器狀態
針對它所管理的每個迷你埠介面卡, NDIS 迷你埠驅動程式 必須支援下列一組操作狀態:
停止
Shutdown
正在初始化
已暫停
重新啟動
執行中
正在暫停
下圖顯示這些狀態之間的關聯性。
注意 重設作業不會影響迷你埠介面卡作業狀態。 此外,重設作業正在進行時,配接器的狀態可能會變更。 例如,當進行重設作業時,NDIS 可能會呼叫驅動程式的暫停處理常式。 在此情況下,驅動程式可以依任何順序完成重設或暫停作業,同時遵循每個作業的一般需求。 若為重設作業,驅動程式可能會失敗傳輸要求封包,或讓這些封包保持佇列,並在稍後完成。 不過,您應該注意,過度處理驅動程式在傳輸封包擱置時無法完成暫停作業。
下列定義配接器狀態:
已停止 是所有迷你埠介面卡的初始狀態。 當迷你埠配接器處於已停止狀態,而 NDIS 會呼叫驅動程式的 MiniportInitializeEx 函式來初始化迷你埠配接器時,迷你埠配接器會進入初始化狀態。 如果 MiniportInitializeEx 失敗,迷你埠配接器會返回已停止的狀態。 當迷你埠配接器處於 Paused 狀態,而 NDIS 會呼叫 MiniportHaltEx 函式時,迷你埠配接器會返回已停止的狀態。
關閉 狀態的 迷你埠介面卡在關閉並重新啟動之前無法使用。 當迷你埠配接器處於 Paused、Restarting、Running 或 Pausing 狀態,而 NDIS 會呼叫 miniport 驅動程式的 MiniportShutdownEx 函式時,迷你埠介面卡會進入 [關機] 狀態。
在 初始化 狀態中,迷你埠驅動程式會完成初始化迷你埠配接器所需的任何作業。 當迷你埠介面卡處於已停止狀態,而 NDIS 會呼叫迷你埠驅動程式的 MiniportInitializeEx 函式時,迷你埠介面卡會進入初始化狀態。 如果 MiniportInitializeEx 成功,迷你埠配接器就會進入暫停狀態。 如果 MiniportInitializeEx 失敗,迷你埠配接器會返回已停止的狀態。
當迷你埠配接器處於 暫停 狀態時,迷你埠驅動程式不會指出收到的網路資料或接受傳送要求。 當迷你埠配接器處於暫停狀態且暫停作業完成時,迷你埠配接器會進入暫停狀態。 當迷你埠配接器處於初始化狀態且 MiniportInitializeEx 成功時,迷你埠配接器會進入暫停狀態。 當 NDIS 呼叫迷你埠驅動程式的 MiniportRestart 函式時,迷你埠介面卡會從 [暫停] 狀態轉換為 [重新開機] 狀態。 當 NDIS 呼叫迷你埠驅動程式的 MiniportHaltEx 函式時,迷你埠介面卡會從 Paused 狀態轉換為已停止狀態。
在 [重新開機 ] 狀態中,迷你埠驅動程式會完成重新開機迷你埠配接器傳送和接收作業所需的任何作業。 當迷你埠配接器處於暫停狀態,而 NDIS 會呼叫驅動程式的 MiniportRestart 函式時,迷你埠介面卡會進入重新開機狀態。 如果重新開機失敗,迷你埠配接器會返回 [暫停] 狀態。 如果重新開機成功,迷你埠配接器會進入執行中狀態。
在 [ 執行 中] 狀態中,迷你埠驅動程式會執行迷你埠介面卡的一般傳送和接收處理。 當迷你埠配接器處於重新開機狀態,且驅動程式已準備好執行傳送和接收作業時,迷你埠配接器會進入執行中狀態。
在 暫停 狀態下,迷你埠驅動程式會完成停止迷你埠配接器傳送和接收作業所需的任何作業。 驅動程式必須等候 NDIS 傳回所有未處理的接收指示。 當迷你埠配接器處於執行中狀態,而 NDIS 會呼叫驅動程式的 MiniportPause 函式時,迷你埠配接器會進入暫停狀態。 迷你埠驅動程式無法失敗暫停作業。 暫停作業完成時,迷你埠配接器會進入 [暫停] 狀態。