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

Драйвер протокола вызывает функцию NdisRegisterProtocolDriver для регистрации функций ProtocolXxx с помощью NDIS.

Синтаксис

NDIS_STATUS NdisRegisterProtocolDriver(
  [in, optional] NDIS_HANDLE                           ProtocolDriverContext,
  [in]           PNDIS_PROTOCOL_DRIVER_CHARACTERISTICS ProtocolCharacteristics,
  [out]          PNDIS_HANDLE                          NdisProtocolHandle
);

Параметры

[in, optional] ProtocolDriverContext

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

[in] ProtocolCharacteristics

Указатель на NDIS_PROTOCOL_DRIVER_CHARACTERISTICS структуру, которую драйвер протокола создал и инициализировал с помощью точек входа функции ProtocolXxx .

[out] NdisProtocolHandle

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

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

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

Код возврата Описание
NDIS_STATUS_SUCCESS

NdisRegisterProtocolDriver возвращает NDIS_STATUS_SUCCESS, если зарегистрирован драйвер протокола.

NDIS_STATUS_BAD_VERSION
Версия, указанная в элементе MajorNdisVersion структуры ProtocolCharacteristics, недопустима .
NDIS_STATUS_BAD_CHARACTERISTICS
Некоторые элементы структуры в параметре ProtocolCharacteristics являются недопустимыми .
NDIS_STATUS_RESOURCES

Сбой NdisRegisterProtocolDriver из-за нехватки ресурсов.

NDIS_STATUS_FAILURE

NdisRegisterProtocolDriver возвращает NDIS_STATUS_FAILURE, если ни одно из предыдущих значений не применяется.

Комментарии

Драйвер протокола вызывает функцию NdisRegisterProtocolDriver из процедуры DriverEntry . Дополнительные сведения о DriverEntry см. в разделе DriverEntry для драйверов протокола NDIS.

Драйверы, вызывающие NdisRegisterProtocolDriver , должны быть подготовлены к немедленному вызову любой из своих функций ProtocolXxx .

Каждый драйвер протокола экспортирует набор функций ProtocolXxx , настроив NDIS_PROTOCOL_DRIVER_CHARACTERISTICS структуру и вызов NdisRegisterProtocolDriver. NDIS копирует эту структуру во внутреннее хранилище библиотеки NDIS.

Чтобы разрешить драйверам протокола регистрировать необязательные службы, NDIS вызывает функцию ProtocolSetOptions в контексте NdisRegisterProtocolDriver.

Драйверы протокола вызываютФункция NdisDeregisterProtocolDriver для освобождения ресурсов, которые ранее были выделены с помощью NdisRegisterProtocolDriver.

Требования

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

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

DriverEntry of NDIS Protocol Drivers

NDIS_PROTOCOL_DRIVER_CHARACTERISTICS

NdisDeregisterProtocolDriver

NdisSetOptionalHandlers