共用方式為


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 狀態指示。