NDIS 喚醒原因狀態指示的概觀
從 NDIS 6.30 開始,迷你埠驅動程式會發出 NDIS 喚醒原因狀態指示, (NDIS_STATUS_PM_WAKE_REASON) 通知 NDIS 和過度配置驅動程式,以瞭解系統喚醒事件的原因。 如果網路介面卡產生喚醒事件,迷你埠驅動程式會在網路介面卡繼續進入全電源狀態時,立即發出 NDIS 狀態指示 ,指出NDIS_STATUS_PM_WAKE_REASON 。
注意 針對行動寬頻 (MB) 迷你埠驅動程式,支援 NDIS 喚醒原因狀態指示。
迷你埠驅動程式是透過OID_PM_PARAMETERS (OID) 集合要求的物件識別碼,使用電源管理 (PM) 參數來設定。 此 OID 要求會透過 NDIS_PM_PARAMETERS 結構指定 PM 參數。
NDIS_PM_PARAMETERS結構會指定下列喚醒事件種類的參數。
已接收的封包喚醒事件
如果網路介面卡收到符合網路喚醒 (WOL) 模式的封包,則網路介面卡會產生喚醒事件。 WOL 模式包括下列專案:
與媒體無關的 WOL 模式,例如封包承載內的魔術封包或 TCP/IP 資料模式。 例如, NDIS_PM_PARAMETERS 結構可以指定 TCP SYN 框架的 WOL 模式。
媒體特定的 WOL 模式,例如 EAPOL 要求識別碼封包或行動寬頻 (MB) 簡訊服務 (SMS) 訊息。
符合透過 OID 集合要求所指定之接收篩選的萬用字元模式 OID_GEN_CURRENT_PACKET_FILTER。
注意 基於這種類型的喚醒原因狀態指示,網路介面卡必須能夠儲存收到的封包。 驅動程式必須在狀態指示內傳回收到的封包。
WOL 模式是透過NDIS_PM_PARAMETERS結構的EnabledWoLPacketPatterns成員來指定。
媒體特定的喚醒事件
網路介面卡會因為媒體特定原因而產生喚醒事件,例如與 802.11 存取點 (AP) 的關聯,或收到行動寬頻 (MB) 簡訊服務 (簡訊) 訊息。
此類型的喚醒事件是透過NDIS_PM_PARAMETERS結構的MediaSpecificWakeUpEvents成員來指定。
媒體獨立喚醒事件
網路介面卡會因為媒體獨立的原因而產生喚醒事件,例如媒體連線或中斷連線。
此類型的喚醒事件是透過NDIS_PM_PARAMETERS結構的WakeUpFlags成員來指定。
迷你埠驅動程式必須遵循下列指導方針,以取得 NDIS 喚醒原因狀態指示:
如果迷你埠驅動程式支援發出喚醒封包指示的能力,則當 NDIS 呼叫驅動程式的 MiniportInitializeEx 函式時,必須報告這項功能。 如需詳細資訊,請參閱 報告喚醒原因狀態指示功能。
注意 迷你埠驅動程式不需要報告其發出 NDIS 喚醒原因狀態指示的能力,這些事件與接收 WOL 封包無關。
當迷你埠驅動程式發出 WOL 封包的喚醒封包指示時,它必須包含造成喚醒事件的封包。 如需詳細資訊,請參閱 發出 NDIS 喚醒原因狀態指示。
如果網路介面卡產生喚醒訊號,迷你埠驅動程式必須發出 NDIS_STATUS_PM_WAKE_REASON 狀態指示。 驅動程式會在處理轉換至完整電源狀態的 OID 集合要求 OID_PNP_SET_POWER時 執行此動作。
迷你埠驅動程式必須先發出 NDIS_STATUS_PM_WAKE_REASON 狀態指示,才能發出與喚醒事件相關的狀態指示。 例如,如果喚醒事件是因為媒體線上狀態的變更,迷你埠驅動程式必須在發出 NDIS_STATUS_PM_WAKE_REASON 狀態指示之後發出 NDIS_STATUS_LINK_STATE 狀態指示。
迷你埠驅動程式必須只針對先前透過 OID_PM_PARAMETERS 的 OID 集合要求啟用的電源管理事件發出NDIS_STATUS_PM_WAKE_REASON狀態指示。
迷你埠驅動程式必須針對基礎網路介面卡所產生的喚醒事件發出 NDIS_STATUS_PM_WAKE_REASON 狀態指示。