функция обратного вызова FILTER_NET_PNP_EVENT (ndis.h)

NDIS вызывает функцию FilterNetPnPEvent драйвера фильтра, чтобы уведомить драйвер о событиях сетевого Plug and Play (PnP) и управления питанием.

Примечание Функцию необходимо объявить с помощью типа FILTER_NET_PNP_EVENT . Дополнительные сведения см. в следующем разделе Примеры.
 

Синтаксис

FILTER_NET_PNP_EVENT FilterNetPnpEvent;

NDIS_STATUS FilterNetPnpEvent(
  [in] NDIS_HANDLE FilterModuleContext,
  [in] PNET_PNP_EVENT_NOTIFICATION NetPnPEventNotification
)
{...}

Параметры

[in] FilterModuleContext

Дескриптор области контекста для модуля фильтра. Драйвер фильтра создал и инициализировал эту область контекста в функции FilterAttach .

[in] NetPnPEventNotification

Указатель на NET_PNP_EVENT_NOTIFICATION структуры, которая описывает событие PnP или событие управления питанием, указывающее драйверу фильтра.

Возвращаемое значение

FilterNetPnPEvent может возвращать одно из следующих элементов:

Код возврата Описание
NDIS_STATUS_SUCCESS
Драйвер успешно обработал событие PnP.
NDIS_STATUS_FAILURE
Драйвер завершился сбоем события PnP.
 

Возвращаемое значение имеет важное значение, только если распространяемое событие является событием NetEventQueryPower или NetEventQueryRemove . Для всех остальных распространяемых событий возвращаемое значение всегда NDIS_STATUS_SUCCESS.

Комментарии

FilterNetPnPEvent является необязательной функцией. Если драйвер фильтра не обрабатывает события PnP сети, он может задать точке входа для этой функции значение NULL при вызовеФункция NdisFRegisterFilterDriver.

FilterNetPnPEvent похож на функцию ProtocolNetPnPEvent драйвера протокола. Драйвер фильтра может пересылать эти уведомления драйверам с превышением или сам обрабатывать их, а не пересылать. Чтобы переслать уведомление, вызовите функцию NdisFNetPnPEvent . Не путайте эту функцию сФункция FilterDevicePnPEventNotify, которая фильтрует уведомления, которые направляются вниз по стеку в базовые драйверы.

NDIS вызывает FilterNetPnPEvent , чтобы уведомить драйвер фильтра о событии PnP или Power Management, которое было выдано для базовой сетевой карты. NDIS вызывает функцию FilterNetPnPEvent каждого драйвера фильтра, который превышает сетевой адаптер, а затем вызывает функцию ProtocolNetPnPEvent каждого драйвера протокола.

Когда модуль фильтра вставляется в стек драйверов или удаляется из нее, характеристики стека могут измениться. NDIS отправляет событие PnP всем затронутым привязкам протокола и модулям фильтров, чтобы уведомить их об этом изменении. Драйверы фильтров должны обрабатывать такие изменения соответствующим образом.

NDIS вызывает FilterNetPnPEvent по адресу IRQL = PASSIVE_LEVEL.

Примеры

Чтобы определить функцию FilterNetPnPEvent , необходимо сначала предоставить объявление функции, определяющее тип определяемой функции. Windows предоставляет набор типов функций для драйверов. Объявление функции с помощью типов функций помогает анализу кода для драйверов, средству проверки статических драйверов (SDV) и другим средствам проверки находить ошибки, и это требование для написания драйверов для операционной системы Windows.

Например, чтобы определить функцию FilterNetPnPEvent с именем MyNetPnPEvent, используйте тип FILTER_NET_PNP_EVENT , как показано в следующем примере кода:

FILTER_NET_PNP_EVENT MyNetPnPEvent;

Затем реализуйте функцию следующим образом:

_Use_decl_annotations_
NDIS_STATUS
 MyNetPnPEvent(
    NDIS_HANDLE  FilterModuleContext,
    PNET_PNP_EVENT_NOTIFICATION  NetPnPEvent
    )
  {...}

Тип функции FILTER_NET_PNP_EVENT определен в файле заголовка Ndis.h. Чтобы более точно определить ошибки при запуске средств анализа кода, не забудьте добавить заметку Use_decl_annotations в определение функции. Заметка Use_decl_annotations гарантирует использование заметок, которые применяются к типу функции FILTER_NET_PNP_EVENT в файле заголовка. Дополнительные сведения о требованиях к объявлениям функций см. в статье Объявление функций с помощью типов ролей функций для драйверов NDIS.

Сведения о Use_decl_annotations см. в статье Поведение функции с заметками.

Требования

Требование Значение
Минимальная версия клиента Поддерживается в NDIS 6.0 и более поздних версиях.
Целевая платформа Windows
Header ndis.h (включая Ndis.h)
IRQL PASSIVE_LEVEL

См. также раздел

FilterAttach

FilterDevicePnPEventNotify

NET_PNP_EVENT_NOTIFICATION

NdisFNetPnPEvent

NdisFRegisterFilterDriver

ProtocolNetPnPEvent