NdisIfRegisterProvider 函数 (ndis.h)

NdisIfRegisterProvider 函数注册 NDIS 网络接口提供程序。

语法

NDIS_STATUS NdisIfRegisterProvider(
  [in] PNDIS_IF_PROVIDER_CHARACTERISTICS ProviderCharacteristics,
  [in] NDIS_HANDLE                       IfProviderContext,
       PNDIS_HANDLE                      pNdisIfProviderHandle
);

参数

[in] ProviderCharacteristics

指向调用方提供的指针 NDIS_IF_PROVIDER_CHARACTERISTICS 结构。 此结构定义提供程序的特征,包括其提供程序回调函数的入口点。

[in] IfProviderContext

此网络接口提供程序的调用方提供的上下文区域的句柄。 如果没有上下文区域,请将此参数设置为 NULL

pNdisIfProviderHandle

指向调用方提供的句柄变量的指针。 如果注册操作成功,NDIS 会将一个句柄写入此标识网络接口提供程序的变量。 接口提供程序应保留此句柄,以便在需要接口提供程序句柄的后续调用中使用。

返回值

NdisIfRegisterProvider 返回以下状态值之一:

返回代码 说明
NDIS_STATUS_SUCCESS
操作已成功完成。
NDIS_STATUS_RESOURCES
由于资源不足,操作失败。
NDIS_STATUS_INVALID_PARAMETER
NdisIfRegisterProvider 无法注册提供程序,因为providerCharacteristics 参数处的NDIS_IF_PROVIDER_CHARACTERISTICS结构包含无效的成员数据。
NDIS_STATUS_NOT_SUPPORTED
NdisIfRegisterProvider 无法注册提供程序,因为 NDIS_IF_PROVIDER_CHARACTERISTICS 中的 Header 成员指定了不支持的结构版本。

注解

NDIS 驱动程序在初始化期间调用 NdisIfRegisterProvider 函数一次,以注册为 NDIS 接口提供程序。 例如,驱动程序可以从其 DriverEntry 例程调用 NdisIfRegisterProvider。 接口提供程序是管理网络接口以支持 MIB ( RFC 2863) 的软件组件。

为了处理接口提供程序 OID 请求,接口提供程序为 中的回调函数提供入口点 NDIS_IF_PROVIDER_CHARACTERISTICSNdisIfRegisterProviderProviderCharacteristics 参数的结构。

NDIS 接口提供程序调用 NdisIfRegisterInterface 函数来注册网络接口。 提供程序可以注册多个接口。

如果 NdisIfRegisterProvider 成功,它将返回 pNdisProviderHandle 参数指向的位置的句柄。 接口提供程序应保留此句柄,以便在需要接口提供程序句柄的后续调用中使用。 例如,驱动程序必须在卸载驱动程序之前调用 NdisIfDeregisterProvider

不再是接口提供程序的组件可以随时调用 NdisIfDeregisterProvider 函数,以释放驱动程序调用 NdisIfRegisterProvider 时 NDIS 分配的接口提供程序资源。

要求

要求
最低受支持的客户端 在 NDIS 6.0 及更高版本中受支持。
目标平台 桌面
标头 ndis.h (包括 Ndis.h)
Library Ndis.lib
IRQL PASSIVE_LEVEL
DDI 符合性规则 Irql_Interfaces_Function (ndis)

另请参阅

DriverEntry

NDIS_IF_PROVIDER_CHARACTERISTICS

NdisIfDeregisterProvider

NdisIfRegisterInterface