NdisRegisterProtocolDriver 函数 (ndis.h)

协议驱动程序调用 NdisRegisterProtocolDriver 函数,以向 NDIS 注册其 ProtocolXxx 函数。

语法

NDIS_STATUS NdisRegisterProtocolDriver(
  [in, optional] NDIS_HANDLE                           ProtocolDriverContext,
  [in]           PNDIS_PROTOCOL_DRIVER_CHARACTERISTICS ProtocolCharacteristics,
  [out]          PNDIS_HANDLE                          NdisProtocolHandle
);

参数

[in, optional] ProtocolDriverContext

驱动程序分配的上下文区域的句柄,驱动程序在其中维护状态和配置信息。

[in] ProtocolCharacteristics

指向 的指针 NDIS_PROTOCOL_DRIVER_CHARACTERISTICS 协议驱动程序使用其 ProtocolXxx 函数入口点创建和初始化的结构。

[out] NdisProtocolHandle

指向调用方提供的句柄变量的指针。 NDIS 将句柄写入此变量,该句柄唯一标识正在注册的驱动程序。 驱动程序必须保存此句柄,以便在后续 的 NdisXxx 函数调用中使用。

返回值

NdisRegisterProtocolDriver 返回以下状态值之一:

返回代码 说明
NDIS_STATUS_SUCCESS

如果 NdisRegisterProtocolDriver 注册了协议驱动程序,则返回NDIS_STATUS_SUCCESS。

NDIS_STATUS_BAD_VERSION
在 ProtocolCharacteristics 结构的 MajorNdisVersion 成员中指定的版本无效。
NDIS_STATUS_BAD_CHARACTERISTICS
ProtocolCharacteristics 参数中的结构的某些成员无效。
NDIS_STATUS_RESOURCES

由于资源不足,NdisRegisterProtocolDriver 失败。

NDIS_STATUS_FAILURE

如果上述值均未应用,则 NdisRegisterProtocolDriver 返回NDIS_STATUS_FAILURE。

注解

协议驱动程序从其 DriverEntry 例程调用 NdisRegisterProtocolDriver 函数。 有关 DriverEntry 的详细信息,请参阅 NDIS 协议驱动程序的 DriverEntry

调用 NdisRegisterProtocolDriver 的 驱动程序必须准备好立即调用其任何 ProtocolXxx 函数。

每个协议驱动程序通过设置 来导出一组 ProtocolXxx 函数 NDIS_PROTOCOL_DRIVER_CHARACTERISTICS 结构并调用 NdisRegisterProtocolDriver。 NDIS 将此结构复制到 NDIS 库的内部存储。

为了允许协议驱动程序注册可选服务,NDIS 在 NdisRegisterProtocolDriver 的上下文中调用 ProtocolSetOptions 函数。

协议驱动程序调用 NdisDeregisterProtocolDriver 函数,用于释放以前使用 NdisRegisterProtocolDriver 分配的资源。

要求

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

另请参阅

NDIS 协议驱动程序的 DriverEntry

NDIS_PROTOCOL_DRIVER_CHARACTERISTICS

NdisDeregisterProtocolDriver

NdisSetOptionalHandlers