Функция NdisOpenAdapterEx (ndis.h)

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

Синтаксис

NDIS_STATUS NdisOpenAdapterEx(
  [in]  NDIS_HANDLE           NdisProtocolHandle,
  [in]  NDIS_HANDLE           ProtocolBindingContext,
  [in]  PNDIS_OPEN_PARAMETERS OpenParameters,
  [in]  NDIS_HANDLE           BindContext,
  [out] PNDIS_HANDLE          NdisBindingHandle
);

Параметры

[in] NdisProtocolHandle

Дескриптор, возвращаемыйФункция NdisRegisterProtocolDriver.

[in] ProtocolBindingContext

Дескриптор для области контекста, предоставленной вызывающей стороны, в которой драйвер протокола хранит сведения о состоянии этой привязки.

[in] OpenParameters

Указатель на структуру NDIS_OPEN_PARAMETERS , настроенную вызывающим элементом.

[in] BindContext

Дескриптор, определяющий область контекста NDIS для операции привязки. NDIS передал этот дескриптор параметру BindContext функции ProtocolBindAdapterEx .

[out] NdisBindingHandle

Указатель на переменную, предоставленную вызывающим. NDIS записывает дескриптор в NdisBindingHandle , который идентифицирует привязку между вызывающим объектом и адаптером мини-порта, указанным в элементе AdapterName в OpenParameters . Вызывающий объект использует этот дескриптор в последующих вызовах функций NdisXxx .

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

NdisOpenAdapterEx возвращает одно из следующих значений состояния:

Код возврата Описание
NDIS_STATUS_SUCCESS
NdisOpenAdapterEx успешно завершил операцию открытия.
NDIS_STATUS_PENDING
NdisOpenAdapterEx не завершил операцию открытия. Позже NDIS вызывает драйвер протокола Функция ProtocolOpenAdapterCompleteEx для завершения операции открытия.
NDIS_STATUS_RESOURCES
Сбой NdisOpenAdapterEx из-за нехватки ресурсов.
NDIS_STATUS_ADAPTER_NOT_FOUND
Сбой NdisOpenAdapterEx , так как не удалось найти адаптер мини-порта, указанный в элементе AdapterNameв OpenParameters .
NDIS_STATUS_UNSUPPORTED_MEDIA
Сбой NdisOpenAdapterEx , так как массив, указанный в элементе MediumArray в OpenParameters , не включал средний тип, поддерживаемый NDIS или базовым драйвером.
NDIS_STATUS_FAILURE
Сбой NdisOpenAdapterEx по причинам, не указанным в предыдущем списке.

Комментарии

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

Если NdisOpenAdapterEx возвращает NDIS_STATUS_PENDING, вызывающий объект не должен использовать значения NdisBindingHandle и элемент SelectedMediumIndex в OpenParameters , пока NDIS не вызовет Функция ProtocolOpenAdapterCompleteEx .

Строка в AdapterName должна оставаться действительной только до тех пор , пока не будет возвращена функция NdisOpenAdapterEx . Поэтому в случае, если NdisOpenAdapterEx возвращает NDIS_STATUS_PENDING, драйверу не требуется продолжать сохранять эту строку после возврата NdisOpenAdapterEx .

После успешного завершения операции открытия вызывающий объект может использовать значение, возвращенное NDIS в NdisBindingHandle в последующих вызовах функций NdisXxx . Вызывающий объект может использовать элемент SelectedMediumIndex параметра OpenParameters , чтобы определить, как он должен взаимодействовать с базовым драйвером.

Требования

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

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

NDIS_OPEN_PARAMETERS

NdisRegisterProtocolDriver

ProtocolBindAdapterEx

ProtocolOpenAdapterCompleteEx