Miniport 驅動程式硬體重設
迷你埠驅動程序必須向 NdisMRegisterMiniportDriver註冊 MiniportResetEx 函式。
MiniportResetEx 可以透過呼叫 NdisMResetComplete以同步或異步方式完成(請參閱下圖)。
MiniportResetEx 應必須:
禁用未來中斷
清除與正在進行中的傳送相關聯的資料。 例如,在總線主機直接記憶體存取 (DMA) 裝置的通道緩衝區上,應該清除傳送緩衝區的指標。 反序列化和以連線為導向的迷你端口驅動程式必須針對任何佇列中的傳送要求返回 NDIS_STATUS_REQUEST_ABORTED。
將硬體狀態和迷你埠驅動程序的內部狀態還原至重設作業之前已存在的狀態。
迷你埠驅動程式負責還原裝置的硬體狀態,但多播位址、封包篩選器、工作卸除設定和喚醒模式除外。 迷你埠驅動程式或 NDIS 會還原這些設定。 迷你埠驅動程式會藉由傳回 AddressingReset 參數中的布爾值,判斷誰負責還原這些設定。
如果迷你埠驅動程式傳回 AddressingReset 參數中的 FALSE,迷你埠驅動程式會還原其多播位址、封包篩選器、工作卸除設定,以及喚醒模式到其初始狀態。 如果 miniport 驅動程式在 AddressingReset中傳回 TRUE,NDIS 會呼叫無連線 miniport 驅動程式的 MiniportOidRequest 函式或聯機導向 miniport 驅動程式的 MiniportCoOidRequest 函式來設定下列組態設定:
網路封包會透過一組 OID_GEN_CURRENT_PACKET_FILTER的要求進行篩選。
透過一組 OID_802_3_MULTICAST_LIST的要求,多播位址清單。
透過 OID_OFFLOAD_ENCAPSULATION的集合要求卸載封裝設定。
透過一組 OID_PNP_ADD_WAKE_UP_PATTERN的設定要求來添加電源管理喚醒模式。 注意 從 NDIS 6.20 開始,迷你埠驅動程式必須還原透過 OID_PM_ADD_WOL_PATTERN 設定的喚醒模式。