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 返回以下状态值之一:
返回代码 | 说明 |
---|---|
|
如果 NdisRegisterProtocolDriver 注册了协议驱动程序,则返回NDIS_STATUS_SUCCESS。 |
|
在 ProtocolCharacteristics 结构的 MajorNdisVersion 成员中指定的版本无效。 |
|
ProtocolCharacteristics 参数中的结构的某些成员无效。 |
|
由于资源不足,NdisRegisterProtocolDriver 失败。 |
|
如果上述值均未应用,则 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) |