NdisSetOptionalHandlers 函数 (ndis.h)

NDIS 驱动程序可以调用 NdisSetOptionalHandlers 函数来设置或更改驱动程序函数的入口点。

语法

NDIS_STATUS NdisSetOptionalHandlers(
  NDIS_HANDLE                    NdisHandle,
  PNDIS_DRIVER_OPTIONAL_HANDLERS OptionalHandlers
);

参数

NdisHandle

标识驱动程序或驱动程序实例的 NDIS 句柄。

对于协议驱动程序,这是传递给 ProtocolSetOptions 函数的 NdisDriverHandle 值或通过调用 NdisOpenAdapterEx 函数获取的 NdisBindingHandle 值。

对于微型端口驱动程序,这是传递给 MiniportSetOptions 函数的 NdisDriverHandle

对于筛选器驱动程序,这是传递给 FilterSetOptions 函数的 NdisDriverHandle 值或传递给 FilterAttach 函数的 NdisFilterHandle 值。

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_PROTOCOL_CO_CHARACTERISTICS NDIS_PROVIDER_CHIMNEY_OFFLOAD_GENERIC_CHARACTERISTICS NDIS_PROVIDER_CHIMNEY_OFFLOAD_TCP_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 中传递的结构类型因驱动程序类型而异。

协议驱动程序可以在 ProtocolSetOptions 函数的上下文中调用 NdisSetOptionalHandlers。 作为选项,协议驱动程序可以从 ProtocolBindAdapterEx 函数或 调用 NdisSetOptionalHandlers协议驱动程序具有来自 NdisOpenAdapterEx 函数的有效句柄之后的 ProtocolOpenAdapterCompleteEx 函数。

在这种情况下,有效结构为:

NDIS_PROTOCOL_CO_CHARACTERISTICS NDIS_CO_CLIENT_OPTIONAL_HANDLERS NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS NDIS_SHARED_MEMORY_PROVIDER_CHARACTERISTICS NDIS_CLIENT_CHIMNEY_OFFLOAD_GENERIC_CHARACTERISTICS NDIS_CLIENT_CHIMNEY_OFFLOAD_TCP_CHARACTERISTICS

有关 2 烟囱卸载结构的详细信息,请参阅 NDIS 6.0 TCP 烟囱卸载文档

微型端口驱动程序在 MiniportSetOptions 函数的上下文中调用 NdisSetOptionalHandlers

在这种情况下,有效结构为:

NDIS_MINIPORT_CO_CHARACTERISTICS NDIS_MINIPORT_PNP_CHARACTERISTICS

NDIS_MINIPORT_SS_CHARACTERISTICS

NDIS_NDK_PROVIDER_CHARACTERISTICS

NDIS_CO_CALL_MANAGER_OPTIONAL_HANDLERS NDIS_SHARED_MEMORY_PROVIDER_CHARACTERISTICS NDIS_CLIENT_CHIMNEY_OFFLOAD_GENERIC_CHARACTERISTICS NDIS_CLIENT_CHIMNEY_OFFLOAD_TCP_CHARACTERISTICS

有关 2 烟囱卸载结构的详细信息,请参阅 NDIS 6.0 TCP 烟囱卸载文档

筛选器驱动程序在 FilterSetOptions 函数的上下文中调用 NdisSetOptionalHandlers

当前 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 烟囱卸载结构的详细信息,请参阅 NDIS 6.0 TCP 烟囱卸载文档

要求

要求
最低受支持的客户端 在 NDIS 6.0 及更高版本中受支持。
目标平台 通用
标头 ndis.h (包括 Ndis.h)
Library 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