共用方式為


報告喚醒原因狀態指示功能

從 NDIS 6.30 開始,迷你埠驅動程式必須報告是否可以發出 NDIS 喚醒原因狀態指示, (NDIS_STATUS_PM_WAKE_REASON) 回報下列其中一項所造成的喚醒事件:

  • 網路介面卡收到符合網路喚醒 (WOL) 模式的封包。 這包括符合透過物件識別碼指定之接收篩選的封包回條, (OID) 設定 OID_GEN_CURRENT_PACKET_FILTER的要求。

    注意 基於這種類型的喚醒原因狀態指示,網路介面卡必須能夠儲存收到的封包。 驅動程式必須在狀態指示內傳回收到的封包。

  • 網路介面卡偵測到媒體特定事件,例如中斷與 802.11 存取點的關聯, (AP) 或收到行動寬頻 (MB) 簡訊服務 (SMS) 訊息。

  • 網路介面卡偵測到另一個啟用的事件,該事件不是與 WOL 模式或媒體類型無關的另一個事件, (與 媒體無關的事件) 。 例如,迷你埠驅動程式會在啟用網路介面卡偵測媒體連線或中斷連線時發出 NDIS_STATUS_PM_WAKE_REASON 狀態指示。

注意 針對行動寬頻 (MB) 迷你埠驅動程式,支援 NDIS 喚醒原因狀態指示。

當 NDIS 呼叫驅動程式的 MiniportInitializeEx 函式時,miniport 驅動程式會遵循下列步驟報告其喚醒原因狀態指示功能:

  1. 迷你埠驅動程式會使用基礎硬體的電源管理功能 ,初始化NDIS_PM_CAPABILITIES 結構。

    若要啟用喚醒原因狀態指示的支援,迷你埠驅動程式必須設定 NDIS_PM_CAPABILITIES 結構的成員,如下所示:

    • 迷你埠驅動程式必須指定結構標頭成員內NDIS_PM_CAPABILITIES結構的修訂和長度NDIS_PM_CAPABILITIES_REVISION_2和NDIS_SIZEOF_NDIS_PM_CAPABILITIES_REVISION_2。

    • 如果網路介面卡可以儲存造成系統喚醒事件的已接收封包,迷你埠驅動程式會在這個結構的 Flags 成員內設定NDIS_PM_WAKE_PACKET_INDICATION_SUPPORTED旗標。

      如果已設定此旗標,網路介面卡必須能夠儲存導致配接器產生喚醒事件的已接收封包。 此外,迷你埠驅動程式必須在網路介面卡轉換為完整電源狀態之後,使用此封包執行下列動作:

    • 迷你埠驅動程式會將 MaxWoLPacketSaveBuffer 成員設定為緩衝區的大小上限,以位元組為單位,其中包含造成系統喚醒事件的 WOL 封包。

      MaxWoLPacketSaveBuffer成員的值必須小於或等於網路媒體的傳輸單位上限 (MTU) 和媒體存取控制 (MAC) 標頭的大小。 驅動程式會透過 OID_GEN_MAXIMUM_FRAME_SIZE的 OID 查詢要求報告 MTU 大小。

    • 迷你埠驅動程式會將 SupportedWakeUpEvents 設定為網路介面卡支援的媒體獨立喚醒事件,例如在介面卡連線到網路介面時產生喚醒事件。

    • 迷你埠驅動程式會將 MediaSpecificWakeUpEvents 設定為網路介面卡支援的媒體特定喚醒事件。 當 802.11 配接器與 AP 解除關聯時,這些事件包括產生喚醒事件。

  2. 迷你埠驅動程式會初始化 NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES 結構,並將PowerManagementCapabilitiesEx 成員設定為初始化 NDIS_PM_CAPABILITIES 結構的位址。

  3. 迷你埠驅動程式會呼叫 NdisMSetMiniportAttributes 函式來註冊其電源管理功能。 當迷你埠驅動程式呼叫此函式時,它會將 MiniportAttributes 參數設定為 NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES 結構的位址。

迷你埠驅動程式用來報告喚醒原因狀態指示功能的方法,是以報告電源管理功能的 NDIS 6.20 方法為基礎。 如需此方法的詳細資訊,請參閱 報告電源管理功能

如需介面卡初始化程式的詳細資訊,請參閱 初始化 Miniport 配接器

如需如何報告電源管理功能的詳細資訊,請參閱 報告電源管理功能