Настройка дополнительных служб драйверов протокола

NDIS вызывает функцию драйвера протокола ProtocolSetOptions, чтобы разрешить драйверу протокола настраивать необязательные службы. NDIS вызывает ProtocolSetOptions, когда драйвер протокола вызывает функцию NdisRegisterProtocolDriver

ProtocolSetOptions регистрирует точки входа по умолчанию для необязательных функций ProtocolXxx и может выделять другие ресурсы драйвера. Чтобы зарегистрировать необязательные функции ProtocolXxx, драйвер протокола вызывает функцию NdisSetOptionalHandlers и передает структуру характеристик в параметре OptionalHandlers. В этом случае драйвер протокола передает дескриптор из параметра NdisDriverHandle функции ProtocolSetOptions в параметр NdisHandle функции NdisSetOptionalHandlers.

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

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

NDIS_PROTOCOL_CO_CHARACTERISTICS

NDIS_CO_CLIENT_OPTIONAL_HANDLERS

NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS

NDIS_CLIENT_CHIMNEY_OFFLOAD_GENERIC_CHARACTERISTICS (см. документацию по функции разгрузки NDIS 6.0 TCP)

NDIS_CLIENT_CHIMNEY_OFFLOAD_TCP_CHARACTERISTICS (см. документацию по разгрузке TCP chimney NDIS 6.0 )