Поделиться через


OID_PNP_CAPABILITIES

OID OID_PNP_CAPABILITIES запрашивает у мини-порта драйвер для возврата возможностей пробуждения сетевого адаптера или запрашивает промежуточный драйвер для возврата возможностей пробуждения промежуточного драйвера. Возможности пробуждения форматируются в виде структуры 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 смежных копий ethernet-адреса принимающего сетевого адаптера.) Состояние питания устройства указывается как одно из следующих NDIS_DEVICE_POWER_STATE значений :

NdisDeviceStateUnspecified
Сетевой адаптер не поддерживает пробуждение магических пакетов.

NdisDeviceStateD0
Сетевой адаптер может сигнализировать о пробуждении магического пакета из состояния питания устройства D0. Так как D0 является состоянием с полным питанием, это не приводит к пробуждению, но может использоваться в качестве события времени выполнения.

NdisDeviceStateD1
Сетевой адаптер может сигнализировать о пробуждении волшебного пакета из состояний питания устройства D1 и D0.

NdisDeviceStateD2
Сетевой адаптер может сигнализировать о пробуждении магического пакета из состояний устройства D2, D1 и D0.

NdisDeviceStateD3
Сетевой адаптер может сигнализировать о пробуждении магического пакета из состояний питания устройства D3, D2, D1 и D0.

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_PNP_QUERY_POWER и OID_PNP_SET_POWER.

Если сетевой адаптер драйвера минипорта не поддерживает определенное событие пробуждения, драйвер минипорта должен указать NDIS_DEVICE_POWER_STATE значение NdisDeviceStateUnspecified для события пробуждения в структуре NDIS_PM_WAKE_UP_CAPABILITIES .

OID_PNP_CAPABILITIES указывает только на возможности пробуждения сетевого адаптера драйвера мини-порта; он не включает такие возможности. OID_PNP_ENABLE_WAKE_UP используется для включения возможностей пробуждения сетевого адаптера.

Для промежуточных драйверов

Если базовый сетевой адаптер учитывает PM, промежуточный драйвер должен вернуть NDIS_STATUS_SUCCESS в запрос OID_PNP_CAPABILITIES. В NDIS_PM_WAKE_UP_CAPABILITIES структуре, возвращаемой этим OID, промежуточный драйвер должен указать состояние питания устройства NdisDeviceStateUnspecified для каждой возможности пробуждения ( MinMagicPacketWakeUp или MinPatternWakeUp). Такой ответ означает, что промежуточный драйвер поддерживает 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

Создание отчетов о возможностях управления питанием