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_CHARACTERISTICSNDIS_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 返回以下状态值之一:
返回代码 | 说明 |
---|---|
|
如果 NdisSetOptionalHandlers 设置了驱动程序入口点,则返回 NDIS_STATUS_SUCCESS 。 |
|
NdisSetOptionalHandlers 由于资源不足而失败。 |
|
NdisSetOptionalHandlers 失败,因为微型端口驱动程序未指定它支持 NDIS 6.0 或更高版本。 微型端口驱动程序在调用 时指定其 NDIS 版本 NdisMRegisterMiniportDriver 函数。 |
|
如果上述值均未应用,则 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_CHARACTERISTICSNDIS_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_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 烟囱卸载结构的详细信息,请参阅 NDIS 6.0 TCP 烟囱卸载文档。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 NDIS 6.0 及更高版本中受支持。 |
目标平台 | 通用 |
标头 | ndis.h (包括 Ndis.h) |
Library | Ndis.lib |
IRQL | PASSIVE_LEVEL |
DDI 符合性规则 | Irql_Miscellaneous_Function (ndis) |