Функция 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 of NDIS Filter Drivers.)

[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 of NDIS Filter Drivers.

Драйверы, вызывающие 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 of NDIS Filter Drivers

FilterAttach

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

NDIS_FILTER_DRIVER_CHARACTERISTICS

NdisFDeregisterFilterDriver

NdisSetOptionalHandlers