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 返回以下状态值之一:
返回代码 | 说明 |
---|---|
|
操作已成功完成。 |
|
由于资源不足,操作失败。 |
|
NdisIfRegisterProvider 无法注册提供程序,因为providerCharacteristics 参数处的NDIS_IF_PROVIDER_CHARACTERISTICS结构包含无效的成员数据。 |
|
NdisIfRegisterProvider 无法注册提供程序,因为 NDIS_IF_PROVIDER_CHARACTERISTICS 中的 Header 成员指定了不支持的结构版本。 |
注解
NDIS 驱动程序在初始化期间调用 NdisIfRegisterProvider 函数一次,以注册为 NDIS 接口提供程序。 例如,驱动程序可以从其 DriverEntry 例程调用 NdisIfRegisterProvider。 接口提供程序是管理网络接口以支持 MIB ( RFC 2863) 的软件组件。
为了处理接口提供程序 OID 请求,接口提供程序为 中的回调函数提供入口点 NDIS_IF_PROVIDER_CHARACTERISTICSNdisIfRegisterProvider 的 ProviderCharacteristics 参数的结构。
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) |