共用方式為


OID_PNP_CAPABILITIES

OID_PNP_CAPABILITIES OID 要求迷你埠驅動程式傳回其網路適配器的喚醒功能,或要求中繼驅動程式傳回中繼驅動程式的喚醒功能。 喚醒功能會格式化為 NDIS_PNP_CAPABILITIES 結構,其定義如下:

    typedef struct _NDIS_PNP_CAPABILITIES {
         ULONG Flags;
         NDIS_PM_WAKE_UP_CAPABILITIES WakeUpCapabilities;
    } NDIS_PNP_CAPABILITIES, *PNDIS_PNP_CAPABILITIES;  

這個結構的成員包含下列資訊:

旗標
NDIS_DEVICE_WAKE_UP_ENABLE

如果基礎迷你埠驅動程序支援一或多個喚醒功能,NDIS 會設定此旗標。 通訊協定驅動程式可以測試此旗標,以判斷基礎迷你埠驅動程式是否有喚醒功能。 迷你埠驅動程序不應該存取此旗標。

WakeUpCapabilities
NDIS_PM_WAKE_UP_CAPABILITIES 結構,指定迷你埠驅動程式網路適配器的喚醒功能。 NDIS_PM_WAKE_UP_CAPABILITIES 結構的定義如下:

typedef struct _NDIS_PM_WAKE_UP_CAPABILITIES {
         NDIS_DEVICE_POWER_STATE MinMagicPacketWakeUp;
         NDIS_DEVICE_POWER_STATE MinPatternWakeUp;
         NDIS_DEVICE_POWER_STATE MinLinkChangeWakeUp;
       } NDIS_PM_WAKE_UP_CAPABILITIES, *PNDIS_PM_WAKE_UP_CAPABILITIES;

這個結構的成員包含下列資訊:

MinMagicPacketWakeUp
指定迷你埠驅動程式網路適配器在收到神奇封包時發出喚醒訊號的最低裝置電源狀態。 (魔術封包 是一個封包,其中包含接收網路適配器乙太網路位址的 16 個連續複本。裝置電源狀態指定為下列其中一個 NDIS_DEVICE_POWER_STATE 值:

NdisDeviceStateUnspecified
網路適配器不支援magic-packet喚醒。

NdisDeviceStateD0
網路適配器可以從裝置電源狀態 D0 發出magic-packet 喚醒訊號。 由於 D0 是完整電源狀態,因此這不會造成喚醒,但可作為運行時間事件使用。

NdisDeviceStateD1
網路適配器可以從裝置電源狀態 D1 和 D0 發出 magic-packet 喚醒訊號。

NdisDeviceStateD2
網路適配器可以發出來自裝置狀態 D2、D1 和 D0 的 magic-packet 喚醒訊號。

NdisDeviceStateD3
網路適配器可以從裝置電源狀態 D3、D2、D1 和 D0 發出 magic-packet 喚醒訊號。

MinPatternWakeUp
指定迷你埠驅動程式網路適配器在收到包含通訊協定驅動程式所指定模式的網路框架時發出喚醒事件訊號的最低裝置電源狀態。 電源狀態指定為下列其中一個 NDIS_DEVICE_POWER_STATE 值:

NdisDeviceStateUnspecified
網路適配器不支援模式比對喚醒。

NdisDeviceStateD0
網路適配器可以從裝置電源狀態 D0 發出模式比對喚醒訊號。 由於 D0 是完整電源狀態,因此這不會造成喚醒,但可作為運行時間事件使用。

NdisDeviceStateD1
網路適配器可以從裝置電源狀態 D1 和 D0 發出模式比對喚醒訊號。

NdisDeviceStateD2
網路適配器可以從裝置電源狀態 D2、D1 和 D0 發出模式比對喚醒訊號。

NdisDeviceStateD3
網路適配器可以從裝置電源狀態 D3、D2、D1 和 D0 發出模式比對喚醒訊號。

MinLinkChangeWakeUp
保留。 NDIS 會忽略此成員。

迷你埠驅動程式

迷你埠驅動程式完成初始化之後,通訊協定驅動程式和 NDIS 都可以使用此 OID 查詢迷你埠驅動程式,以判斷下列各項:

  • 迷你埠驅動程式是否為PM感知。

  • 網路適配器指出網路喚醒事件的功能。

如果迷你埠驅動程式 NDIS_STATUS_SUCCESS 傳回OID_PNP_CAPABILITIES查詢,NDIS 會將迷你埠驅動程序視為 PM 感知。 如果迷你埠驅動程式傳回 NDIS_STATUS_NOT_SUPPORTED,NDIS 會將迷你埠驅動程式視為非 PM 感知的舊版迷你埠驅動程式。

呼叫 NdisMSetAttributesEx時,不支持喚醒功能的迷你埠驅動程式,但可以在電源狀態轉換中儲存和還原其網路適配器狀態,可以設定 NDIS_ATTRIBUTE_NO_HALT_ON_SUSPEND 旗標。 設定此旗標可防止 NDIS 在系統轉換為低功率(睡眠)狀態之前呼叫驅動程式的 MiniportHalt 函式。 不過,如果迷你埠驅動程式傳回 NDIS_STATUS_NOT_SUPPORTED 以響應查詢OID_PNP_CAPABILITIES,NDIS 會忽略 NDIS_ATTRIBUTE_NO_HALT_ON_SUSPEND 旗標,並在系統進入低功率狀態時停止網路適配器。

迷你埠驅動程式的網路適配器可以支援任何喚醒事件組合,包括沒有喚醒事件。 迷你埠驅動程式仍然可以支援電源管理,即使其網路適配器無法發出喚醒事件訊號。 在此情況下,除了OID_PNP_CAPABILITIES之外,迷你埠驅動程序支援的唯一電源管理 OID 是 OID_PNP_QUERY_POWEROID_PNP_SET_POWER

如果迷你埠驅動程式的網路適配器不支援特定的喚醒事件,迷你埠驅動程序應該指出 NdisDeviceStateUnspecifiedNDIS_PM_WAKE_UP_CAPABILITIES 結構中喚醒事件的 NDIS_DEVICE_POWER_STATE 值。

OID_PNP_CAPABILITIES只會指出迷你埠驅動程序網路適配器的喚醒功能;它不會啟用這類功能。 OID_PNP_ENABLE_WAKE_UP 可用來啟用網路適配器的喚醒功能。

中繼驅動程式

如果基礎網路適配器為 PM 感知,中繼驅動程式應傳回 NDIS_STATUS_SUCCESS 至OID_PNP_CAPABILITIES查詢。 在這個 OID 傳回的 NDIS_PM_WAKE_UP_CAPABILITIES 結構中,中繼驅動程式應為每個喚醒功能指定 NdisDeviceStateUnspecified 的裝置電源狀態(MinMagicPacketWakeUpMinPatternWakeUp)。 這類回應表示中繼驅動程式為 PM 感知,但不會管理實體裝置。

如果基礎網路適配器不是 PM 感知,中繼驅動程式應該會將 NDIS_STATUS_NOT_SUPPORTED 傳回OID_PNP_CAPABILITIES查詢。

附注 如需 NDIS 6.20 及更新版本的迷你埠驅動程式如何報告電源管理功能的詳細資訊,請參閱 Reporting Power Management Capabilities

要求

版本

NDIS 6.0 和 NDIS 6.1 支援。 針對 NDIS 6.20 和更新版本,請改用 OID_PM_CURRENT_CAPABILITIES

頁眉

Ntddndis.h (包括 Ndis.h)

另請參閱

NDIS_DEVICE_POWER_STATE

NdisMSetAttributesEx

OID_PM_CURRENT_CAPABILITIES

OID_PNP_ENABLE_WAKE_UP

OID_PNP_QUERY_POWER

OID_PNP_SET_POWER

Reporting Power Management Capabilities