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

Функция ProtocolStatusEx указывает на изменения состояния базовых драйверов без подключения или NDIS.

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

Синтаксис

PROTOCOL_STATUS_EX ProtocolStatusEx;

void ProtocolStatusEx(
  [in] NDIS_HANDLE ProtocolBindingContext,
  [in] PNDIS_STATUS_INDICATION StatusIndication
)
{...}

Параметры

[in] ProtocolBindingContext

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

[in] StatusIndication

Указатель на структуру NDIS_STATUS_INDICATION , содержащую сведения о состоянии.

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

None

Remarks

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

Чтобы определить состояние ссылки, используйте указания состояния из базовых драйверов вместо запросов OID. Эти индикаторы состояния повысят производительность системы и избежать возможных состояний гонки.

NDIS вызывает функцию ProtocolStatusEx всех связанных драйверов протокола, когда базовый драйвер сбрасывает сетевой адаптер. Сначала NDIS указывает код NDIS_STATUS_RESET_START , а затем после завершения операции сброса NDIS указывает код NDIS_STATUS_RESET_END .

NDIS не будет принимать запросы на отправку и запросы OID для адаптера мини-порта, пока выполняется операция сброса. Уведомление NDIS_STATUS_RESET_START предупреждает связанные драйверы протокола о необходимости остановить такие запросы в затронутой привязке, пока они не получат соответствующее уведомление NDIS_STATUS_RESET_END.

NDIS вызывает ProtocolStatusEx в IRQL <= DISPATCH_LEVEL.

Примеры

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

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

PROTOCOL_STATUS_EX MyStatusEx;

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

_Use_decl_annotations_
VOID
 MyStatusEx(
    NDIS_HANDLE  ProtocolBindingContext,
    PNDIS_STATUS_INDICATION  StatusIndication
    )
  {...}

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

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

Требования

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

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

MiniportResetEx

NDIS_STATUS_INDICATION

NDIS_STATUS_RESET_END

NDIS_STATUS_RESET_START

NdisOpenAdapterEx