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


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

NdisDeviceStateUnspecified
Сетевой адаптер не поддерживает пробуждение волшебных пакетов.

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

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

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

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

MinPatternWakeUp
Указывает наименьшее состояние питания устройства, из которого сетевой адаптер минипорта драйвера может сигнализировать о событии пробуждения при получении сетевого кадра, содержащего шаблон, указанный драйвером протокола. Состояние питания указывается как одно из следующих значений NDIS_DEVICE_POWER_STATE:

NdisDeviceStateUnspecified
Сетевой адаптер не поддерживает пробуждения по шаблону.

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

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

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

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

MinLinkChangeWakeUp
Скрытный. NDIS игнорирует этот член.

для драйверов минипорта

После завершения инициализации драйвера минипорта драйвер протокола и NDIS могут запрашивать мини-драйвер с помощью этого OID, чтобы определить следующее:

  • Учитывается ли минипорт-драйвер.

  • Возможности сетевого адаптера для указания событий пробуждения сети.

Если драйвер минипорта возвращает NDIS_STATUS_SUCCESS запросу OID_PNP_CAPABILITIES, NDIS считает, что драйвер мини-порта должен быть с учетом PM. Если драйвер минипорта возвращает NDIS_STATUS_NOT_SUPPORTED, NDIS считает, что драйвер минипорта является устаревшим минипорт-драйвером, который не учитывает PM.

При вызове NdisMSetAttributesExмини-драйвер, который не поддерживает возможности пробуждения, но который может сохранить и восстановить состояние сетевого адаптера через переход состояния питания, может задать флаг NDIS_ATTRIBUTE_NO_HALT_ON_SUSPEND. Установка этого флага предотвращает вызов функции драйвера MiniportHalt до перехода системы в состояние с низким уровнем питания (спящего). Однако если драйвер минипорта возвращает NDIS_STATUS_NOT_SUPPORTED в ответ на запрос OID_PNP_CAPABILITIES, NDIS игнорирует флаг NDIS_ATTRIBUTE_NO_HALT_ON_SUSPEND и останавливает сетевой адаптер, если система переходит в состояние низкой мощности.

Сетевой адаптер минипорта драйвера может поддерживать любое сочетание событий пробуждения, включая события пробуждения. Мини-драйвер по-прежнему может поддерживать управление питанием, даже если сетевой адаптер не может сигнализировать о событиях пробуждения. В этом случае единственными OID управления питанием, поддерживаемыми драйвером мини-порта, в дополнение к 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 и более поздних версий драйверов минипорта сообщают о возможностях управления питанием, см. в статье Reporting Power Management Capabilities.

Требования

Версия

Поддерживается в NDIS 6.0 и NDIS 6.1. Для NDIS 6.20 и более поздних версий используйте вместо этого OID_PM_CURRENT_CAPABILITIES.

Заголовок

Ntddndis.h (include Ndis.h)

См. также

NDIS_DEVICE_POWER_STATE

NdisMSetAttributesEx

OID_PM_CURRENT_CAPABILITIES

OID_PNP_ENABLE_WAKE_UP

OID_PNP_QUERY_POWER

OID_PNP_SET_POWER

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