共用方式為


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

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

  • 網路適配器收到與網路喚醒模式相符的封包。 這包括接收的資料包符合透過物件識別碼 (OID) 集設要求所指定的接收篩選器 OID_GEN_CURRENT_PACKET_FILTER

    注意 針對這種類型的喚醒原因狀態指示,網路適配器必須能夠儲存接收的封包。 驅動程式必須在狀態指示內傳回收到的封包。

  • 網路適配器偵測到媒體特定事件,例如與802.11存取點 (AP) 或接收行動寬頻 (MB) 短訊服務 (SMS) 訊息的解除關聯。

  • 網路適配器偵測到另一個不屬於特定 WOL 模式或媒體類型的已啟用事件(媒體獨立的事件)。 例如,迷你埠驅動程式會在啟用網路適配器偵測媒體連線或中斷連線時發出 NDIS_STATUS_PM_WAKE_REASON 狀態指示。

注意 NDIS 喚醒原因狀態指示的支援對於行動寬頻(MB)迷你埠驅動程式而言是選擇性的。

當 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 方法為基礎。 如需此方法的詳細資訊,請參閱 Reporting Power Management Capabilities

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

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