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

Драйверы NDIS могут вызывать функцию NdisSetOptionalHandlers для установки или изменения точек входа функций драйвера.

Синтаксис

NDIS_STATUS NdisSetOptionalHandlers(
  NDIS_HANDLE                    NdisHandle,
  PNDIS_DRIVER_OPTIONAL_HANDLERS OptionalHandlers
);

Параметры

NdisHandle

Дескриптор NDIS, идентифицирующий драйвер или экземпляр драйвера.

Для драйвера протокола это значение NdisDriverHandle, переданное функции ProtocolSetOptions , или значение NdisBindingHandle , полученное путем вызова функции NdisOpenAdapterEx .

Для драйвера мини-порта это значение NdisDriverHandle, переданное в функцию MiniportSetOptions .

Для драйвера фильтра это значение NdisDriverHandle, переданное в функцию FilterSetOptions , или значение NdisFilterHandle, переданное функции FilterAttach .

OptionalHandlers

Указатель на одну из следующих структур NDIS:

NDIS_CLIENT_CHIMNEY_OFFLOAD_GENERIC_CHARACTERISTICS NDIS_CLIENT_CHIMNEY_OFFLOAD_TCP_CHARACTERISTICS NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS NDIS_CO_CLIENT_OPTIONAL_HANDLERS NDIS_FILTER_PARTIAL_CHARACTERISTICS NDIS_MINIPORT_CO_CHARACTERISTICS NDIS_MINIPORT_PNP_CHARACTERISTICS

NDIS_MINIPORT_SS_CHARACTERISTICS

NDIS_NDK_PROVIDER_CHARACTERISTICS

NDIS_PROVIDER_CHIMNEY_OFFLOAD_TCP_CHARACTERISTICS NDIS_PROTOCOL_CO_CHARACTERISTICS NDIS_PROVIDER_CHIMNEY_OFFLOAD_GENERIC_CHARACTERISTICS NDIS_SHARED_MEMORY_PROVIDER_CHARACTERISTICS

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

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

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

NdisSetOptionalHandlers возвращает NDIS_STATUS_SUCCESS , если он задает точки входа драйвера.

NDIS_STATUS_RESOURCES

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

NDIS_STATUS_NOT_SUPPORTED

Ошибка NdisSetOptionalHandlers , так как драйвер мини-порта не указал, что он поддерживает NDIS 6.0 или более поздней версии. Драйвер мини-порта указывает свою версию NDIS при вызовеФункция NdisMRegisterMiniportDriver.

NDIS_STATUS_FAILURE

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

Комментарии

Драйвер NDIS может вызывать NdisSetOptionalHandlers для перезаписи точек входа по умолчанию. Типы структуры, передаваемые в OptionalHandlers , зависят от типа драйвера.

Драйверы протокола могут вызывать NdisSetOptionalHandlers в контексте функции ProtocolSetOptions . В качестве варианта драйверы протокола могут вызывать NdisSetOptionalHandlers из функции ProtocolBindAdapterEx или Функция ProtocolOpenAdapterCompleteEx после того, как драйвер протокола имеет допустимый дескриптор из функции NdisOpenAdapterEx .

В этом случае допустимые структуры:

NDIS_PROTOCOL_CO_CHARACTERISTICS NDIS_CO_CLIENT_OPTIONAL_HANDLERS NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS NDIS_SHARED_MEMORY_PROVIDER_CHARACTERISTICS NDIS_CLIENT_CHIMNEY_OFFLOAD_TCP_CHARACTERISTICS NDIS_CLIENT_CHIMNEY_OFFLOAD_GENERIC_CHARACTERISTICS

Дополнительные сведения о двух структурах разгрузки дымохода см. в документации по разгрузке дымохода TCP NDIS 6.0.

Драйверы miniport вызывают NdisSetOptionalHandlers в контексте функции MiniportSetOptions .

В этом случае допустимые структуры:

NDIS_MINIPORT_PNP_CHARACTERISTICS NDIS_MINIPORT_CO_CHARACTERISTICS

NDIS_MINIPORT_SS_CHARACTERISTICS

NDIS_NDK_PROVIDER_CHARACTERISTICS

NDIS_CLIENT_CHIMNEY_OFFLOAD_TCP_CHARACTERISTICS NDIS_CLIENT_CHIMNEY_OFFLOAD_GENERIC_CHARACTERISTICS NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS NDIS_SHARED_MEMORY_PROVIDER_CHARACTERISTICS

Дополнительные сведения о двух структурах разгрузки дымохода см. в документации по разгрузке дымохода TCP NDIS 6.0.

Драйверы фильтров вызывают NdisSetOptionalHandlers в контексте функции FilterSetOptions .

В текущей версии Windows нет дополнительных служб драйверов фильтров.

Драйверы фильтров могут вызывать NdisSetOptionalHandlers для модуля фильтра. Драйверы фильтра вызывают NdisSetOptionalHandlers в контексте Функция FilterSetModuleOptions .

В этом случае допустимые структуры:

NDIS_FILTER_PARTIAL_CHARACTERISTICS

NDIS_CLIENT_CHIMNEY_OFFLOAD_GENERIC_CHARACTERISTICS

NDIS_CLIENT_CHIMNEY_OFFLOAD_TCP_CHARACTERISTICS

NDIS_PROVIDER_CHIMNEY_OFFLOAD_GENERIC_CHARACTERISTICS

NDIS_PROVIDER_CHIMNEY_OFFLOAD_TCP_CHARACTERISTICS

Дополнительные сведения о 4 структурах разгрузки дымохода см. в документации по разгрузке дымохода TCP NDIS 6.0.

Требования

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

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

FilterAttach

FilterRestart

FilterSetOptions

MiniportSetOptions

NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS NDIS_CO_CLIENT_OPTIONAL_HANDLERS NDIS_FILTER_PARTIAL_CHARACTERISTICS NDIS_MINIPORT_CO_CHARACTERISTICS NDIS_MINIPORT_PNP_CHARACTERISTICS NDIS_PROTOCOL_CO_CHARACTERISTICS NDIS_SHARED_MEMORY_PROVIDER_CHARACTERISTICS

NdisMRegisterMiniportDriver

NdisOpenAdapterEx

ProtocolBindAdapterEx

ProtocolOpenAdapterCompleteEx

ProtocolSetOptions