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
指定迷你埠驅動程式網路介面卡在收到魔術封包時發出喚醒訊號的最低裝置電源狀態。 (magic 封包 是一個封包,其中包含接收網路介面卡乙太網路位址的 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_POWER和OID_PNP_SET_POWER

如果迷你埠驅動程式的網路介面卡不支援特定的喚醒事件,迷你埠驅動程式應該會針對 NDIS_PM_WAKE_UP_CAPABILITIES 結構中的喚醒事件指出 NdisDeviceStateUnspecified的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 和更新版本迷你埠驅動程式如何報告電源管理功能的資訊,請參閱 報告電源管理功能。

規格需求

版本

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

報告電源管理功能