Функция 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 возвращает одно из следующих значений состояния:
Код возврата | Описание |
---|---|
|
NdisOpenAdapterEx успешно завершил операцию открытия. |
|
NdisOpenAdapterEx не завершил операцию открытия. Позже NDIS вызывает драйвер протокола Функция ProtocolOpenAdapterCompleteEx для завершения операции открытия. |
|
Сбой NdisOpenAdapterEx из-за нехватки ресурсов. |
|
Сбой NdisOpenAdapterEx , так как не удалось найти адаптер мини-порта, указанный в элементе AdapterNameв OpenParameters . |
|
Сбой NdisOpenAdapterEx , так как массив, указанный в элементе MediumArray в OpenParameters , не включал средний тип, поддерживаемый NDIS или базовым драйвером. |
|
Сбой 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) |