NDIS 如何偵測閒置網路介面卡
在迷你埠驅動程式啟用 NDIS 選擇性暫停並註冊其處理常式函式之後,NDIS 會以下列方式監視網路介面卡的 I/O 活動:
NDIS 會監視迷你埠驅動程式透過 NDIS_MINIPORT_DRIVER_CHARACTERISTICS 和NDIS_MINIPORT_PNP_CHARACTERISTICS結構註冊的 I/O 處理常式函式 呼叫 。 例如,NDIS 會監視迷你埠驅動程式 的 MiniportSendNetBufferLists 或 MiniportReturnNetBufferLists 的呼叫,以判斷驅動程式是否涉及任何封包 I/O 活動。
NDIS 也會監視過度通訊協定驅動程式所進行的 NdisOidRequest 和 NdisDirectOidRequest 呼叫。
注意 NDIS 只會監視這些物件識別碼, (OID) 對未由 NDIS 直接處理的基礎迷你埠驅動程式要求。
如果網路介面卡在閒置逾時期間未偵測到介面卡上的任何活動,則 NDIS 會判斷網路介面卡處於閒置狀態。 此逾時期間的持續時間是由 *SSIdleTimeout 標準化 INF 關鍵字的值所指定。 如需此關鍵字的詳細資訊,請參閱 NDIS 選擇性暫停的標準化 INF 關鍵字。
網路介面卡閒置之後,NDIS 會啟動選擇性暫停作業。 透過這項作業,網路介面卡會藉由將網路介面卡轉換為低電源狀態來暫停。
NDIS 會發出閒置通知給迷你埠驅動程式,以開始此選擇性暫停作業。 NDIS 會藉由呼叫驅動程式的 MiniportIdleNotification 處理常式函式來執行這項作業。 如需迷你埠驅動程式如何處理此通知的詳細資訊,請參閱 處理 NDIS 選擇性暫停閒置通知。
如果 NDIS 偵測到網路介面卡的 I/O 要求是從重迭驅動程式發出,或介面卡發出喚醒事件,NDIS 會取消閒置通知。 NDIS 會藉由呼叫迷你埠驅動程式的 MiniportCancelIdleNotification 處理常式函式來執行這項作業。
如需 NDIS 如何取消閒置通知的詳細資訊,請參閱 取消 NDIS 選擇性暫停閒置通知。
如需迷你埠驅動程式如何完成閒置通知的詳細資訊,請參閱 完成 NDIS 選擇性暫停閒置通知。