迷你埠驅動程式硬體重設
迷你埠驅動程式必須向NdisMRegisterMiniportDriver註冊MiniportResetEx函式。
MiniportResetEx 可以透過呼叫 NdisMResetComplete 以同步或非同步方式完成 (請參閱下圖) 。
MiniportResetEx 應該:
停用進一步的中斷。
清除與任何傳送進行中相關聯的資料。 例如,在匯流排主機直接記憶體存取的通道緩衝區上, (DMA) 裝置上,應該清除傳送緩衝區的指標。 還原序列化和連線導向的迷你埠驅動程式必須針對任何已排入佇列的傳送要求傳回NDIS_STATUS_REQUEST_ABORTED。
將硬體狀態和迷你埠驅動程式的內部狀態還原到重設作業之前存在的狀態。
迷你埠驅動程式負責還原裝置的硬體狀態,但多播位址、封包篩選、工作卸載設定和喚醒模式除外。 這些設定是由迷你埠驅動程式或 NDIS 還原。 迷你埠驅動程式會傳回 AddressingReset 參數中的布林值,判斷誰負責還原這些設定。
如果 Miniport 驅動程式在AddressingReset參數中傳回FALSE,迷你埠驅動程式會還原其多播位址、封包篩選、工作卸載設定,以及喚醒模式至其初始狀態。 如果 Miniport 驅動程式在AddressingReset中傳回TRUE,NDIS 會呼叫無連線迷你埠驅動程式的MiniportOidRequest函式或連線導向迷你埠驅動程式的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 設定的喚醒模式。