Функция 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_CHARACTERISTICSNDIS_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 возвращает одно из следующих значений состояния:
Код возврата | Описание |
---|---|
|
NdisSetOptionalHandlers возвращает NDIS_STATUS_SUCCESS , если он задает точки входа драйвера. |
|
Сбой NdisSetOptionalHandlers из-за нехватки ресурсов. |
|
Ошибка NdisSetOptionalHandlers , так как драйвер мини-порта не указал, что он поддерживает NDIS 6.0 или более поздней версии. Драйвер мини-порта указывает свою версию NDIS при вызовеФункция NdisMRegisterMiniportDriver. |
|
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_CHARACTERISTICSNDIS_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_CHARACTERISTICSNDIS_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) |