共用方式為


篩選驅動程式的模組狀態

NDIS 篩選驅動程式必須支援每個篩選模組的下列作業狀態, (驅動程式的實例) 驅動程式管理:

  • 已卸離

  • 正在附加

  • 已暫停

  • 重新啟動

  • 執行中

  • 正在暫停

下圖顯示這些狀態之間的關聯性。

此圖顯示 NDIS 篩選驅動程式中操作之間的關聯性。

下列定義篩選模組狀態:

已卸離
卸離狀態是篩選模組的初始狀態。 當篩選模組處於此狀態時,NDIS 可以呼叫篩選驅動程式的 FilterAttach 函式,將篩選模組附加至驅動程式堆疊。 當 NDIS 呼叫篩選驅動程式的 FilterAttach 函式時,篩選模組會進入附加狀態。 如果附加作業失敗,篩選模組會返回 [中斷連結] 狀態。 當模組處於 Paused 狀態且 NDIS 呼叫 FilterDetach 函式時,模組會返回已中斷連結的狀態。

正在附加
當篩選模組處於 附加 狀態時,篩選驅動程式會準備將模組附加至驅動程式堆疊。 篩選模組準備完成後,篩選模組會進入暫停狀態。 例如,如果發生失敗 (,因為必要資源無法使用) ,篩選模組就會回到已中斷連結的狀態。

暫停
當篩選模組處於 暫停 狀態時,篩選模組不會執行傳送或接收作業。 當篩選模組處於 附加 狀態且 FilterAttach 成功時,篩選模組會進入 [暫停 ] 狀態。 當篩選模組處於 暫停 狀態且暫停作業完成時,篩選模組會進入 暫停 狀態。 當篩選模組處於 暫停 狀態,而 NDIS 會呼叫篩選驅動程式的 FilterRestart 函式時,篩選模組會進入 重新開機 狀態。 當篩選模組處於 Paused 狀態,而 NDIS 呼叫驅動程式的 FilterDetach 處理常式時,篩選模組會進入 中斷連結 狀態。

重新 啟動
[重新開機 ] 狀態中,篩選驅動程式會完成重新開機篩選模組傳送和接收作業所需的任何作業。 當篩選模組處於 Paused 狀態,而 NDIS 呼叫驅動程式的 FilterRestart 函式時,篩選模組會進入重新開機狀態。 如果重新開機失敗,篩選模組會返回暫停狀態。 如果重新開機成功,篩選模組就會進入執行中狀態。

執行中
在 [ 執行 中] 狀態中,篩選驅動程式會執行篩選模組的一般傳送和接收處理。 當篩選模組處於重新開機狀態,且驅動程式已準備好執行傳送和接收作業時,篩選模組會進入執行中狀態。

暫停
暫停 狀態中,篩選驅動程式會完成停止篩選模組傳送和接收作業所需的任何作業。 篩選驅動程式必須等候其所有未完成的傳送要求完成,並讓 NDIS 傳回其所有未完成的接收指示。 當篩選模組處於執行中狀態,而 NDIS 會呼叫驅動程式的 FilterPause 函式時,篩選模組會進入暫停狀態。 篩選驅動程式無法失敗暫停作業。 暫停作業完成後,篩選模組會進入 [暫停] 狀態。

驅動程式堆疊管理

NDIS 篩選驅動程式