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

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

Синтаксис

NDIS_STATUS NdisFRegisterFilterDriver(
  [in]  PDRIVER_OBJECT                      DriverObject,
  [in]  NDIS_HANDLE                         FilterDriverContext,
        PNDIS_FILTER_DRIVER_CHARACTERISTICS FilterDriverCharacteristics,
  [out] PNDIS_HANDLE                        NdisFilterDriverHandle
);

Параметры

[in] DriverObject

Указатель на непрозрачный объект драйвера, полученный драйвером фильтра в подпрограмме DriverEntry в параметре Argument1 . (Дополнительные сведения см. в разделе DriverEntry драйверов фильтров NDIS.)

[in] FilterDriverContext

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

FilterDriverCharacteristics

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

[out] NdisFilterDriverHandle

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

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

NdisFRegisterFilterDriver возвращает одно из следующих значений состояния:
Код возврата Описание
NDIS_STATUS_SUCCESS
NdisFRegisterFilterDriver возвращает NDIS_STATUS_SUCCESS, если он зарегистрировал драйвер фильтра.
NDIS_STATUS_BAD_VERSION
Версия, указанная в элементе MajorNdisVersion структуры в FilterCharacteristics , является недопустимой.
NDIS_STATUS_BAD_CHARACTERISTICS
По крайней мере один из элементов, указанных в NDIS_FILTER_DRIVER_CHARACTERISTICS недопустим.
NDIS_STATUS_INVALID_PARAMETER
По крайней мере один из входных параметров, переданных драйверу NdisFRegisterFilterDriver недопустим.
NDIS_STATUS_RESOURCES
Сбой NdisFRegisterFilterDriver из-за нехватки ресурсов.
NDIS_STATUS_FAILURE
NdisFRegisterFilterDriver возвращает NDIS_STATUS_FAILURE, если ни одно из предыдущих значений не применяется.

Комментарии

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

Драйверы, вызывающие NdisFRegisterFilterDriver , должны быть подготовлены к немедленному вызову любой из функций FilterXxx . Дополнительные сведения см. в разделе "Инициализация драйвера фильтра".

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

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

После регистрации драйвер фильтра может позже вызвать функцию NdisSetOptionalHandlers , чтобы изменить точки входа для необязательных функций FilterXxx .

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

Требования

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

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

DriverEntry драйверов фильтров NDIS

FilterAttach

Инициализация драйвера фильтра

NDIS_FILTER_DRIVER_CHARACTERISTICS

NdisFDeregisterFilterDriver

NdisSetOptionalHandlers