Поделиться через


Функция 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 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см. в DriverEntry драйверов фильтров NDIS.

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

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

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

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

Вызов драйверов фильтров функцию NdisFDeregisterFilterDriver, чтобы освободить ресурсы, которые ранее были выделены с помощью NdisFRegisterFilterDriver.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Поддерживается в NDIS 6.0 и более поздних версиях.
целевая платформа Настольный
заголовка ndis.h (include Ndis.h)
библиотеки Ndis.lib
IRQL PASSIVE_LEVEL
правил соответствия DDI Irql_Filter_Driver_Function(ndis), NdisFDeregisterFilterDriver(ndis)

См. также

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

FilterAttach

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

NDIS_FILTER_DRIVER_CHARACTERISTICS

NdisFDeregisterFilterDriver

NdisSetOptionalHandlers