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) |