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

NDIS вызывает функцию ProtocolOpenAdapterCompleteEx драйвера протокола, чтобы завершить операцию открытия адаптера, для которой функция NdisOpenAdapterEx возвращала NDIS_STATUS_PENDING.

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

Синтаксис

PROTOCOL_OPEN_ADAPTER_COMPLETE_EX ProtocolOpenAdapterCompleteEx;

void ProtocolOpenAdapterCompleteEx(
  [in] NDIS_HANDLE ProtocolBindingContext,
  [in] NDIS_STATUS Status
)
{...}

Параметры

[in] ProtocolBindingContext

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

[in] Status

Окончательное состояние операции открытия для базового драйвера мини-порта. Это значение состояния NDIS_STATUS_SUCCESS, если привязка установлена или какое-либо состояние ошибки, определяемое базовым драйвером.

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

None

Remarks

Требуется функция ProtocolOpenAdapterCompleteEx . Драйвер протокола вызывает функцию NdisOpenAdapterEx из функции ProtocolBindAdapterEx . NDIS вызывает функцию ProtocolOpenAdapterCompleteEx драйвера после завершения ожидающей операции открытия.

Если ProtocolBindAdapterEx ожидает вызова NDIS ProtocolOpenAdapterCompleteEx, эта функция может просто сохранить состояние и указать, что она была вызвана (например, она может обновить область контекста ProtocolBindingContext ). Это позволяет функции ProtocolBindAdapterEx завершить операцию привязки.

Если функция ProtocolBindAdapterEx еще не сделала этого, ProtocolOpenAdapterCompleteEx может выделить ресурсы, необходимые драйверу для привязки.

Если ProtocolBindAdapterEx вернул NDIS_STATUS_PENDING, ProtocolOpenAdapterCompleteEx может вызватьФункция NdisCompleteBindAdapterEx для завершения операции привязки. В этом случае ProtocolOpenAdapterCompleteEx передает NdisCompleteBindAdapterEx дескриптор BindContext , переданный NDIS в ProtocolBindAdapterEx. Если параметр Status указывает на ошибку, ProtocolOpenAdapterCompleteEx может освободить ресурсы привязки, настроенные в ProtocolBindAdapterEx.

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

Примеры

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

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

PROTOCOL_OPEN_ADAPTER_COMPLETE_EX MyOpenAdapterCompleteEx;

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

_Use_decl_annotations_
VOID
 MyOpenAdapterCompleteEx(
    NDIS_HANDLE  ProtocolBindingContext,
    NDIS_STATUS  Status
    )
  {...}

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

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

Требования

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

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

NdisCompleteBindAdapterEx

NdisOpenAdapterEx

ProtocolBindAdapterEx