NdisDeregisterProtocol 函数 (ndis.h)

注意 NDIS 5. x 已弃用,由 NDIS 6 取代。 x。 有关新的 NDIS 驱动程序开发,请参阅 从 Windows Vista 开始的网络驱动程序。 有关移植 NDIS 5 的信息。 NDIS 6 的 x 驱动程序。 x,请参阅 将 NDIS 5.x 驱动程序移植到 NDIS 6.0

NdisDeregisterProtocol 释放驱动程序调用 NdisRegisterProtocol 时分配的资源。

语法

void NdisDeregisterProtocol(
  [out] PNDIS_STATUS Status,
  [in]  NDIS_HANDLE  NdisProtocolHandle
);

参数

[out] Status

指向调用方提供的变量的指针,该变量在从此函数返回时设置为NDIS_STATUS_SUCCESS。

[in] NdisProtocolHandle

指定初始化驱动程序时 由 NdisRegisterProtocol 返回的句柄。

返回值

备注

注册的协议驱动程序在以下任何情况下调用 NdisDeregisterProtocol

  • 驱动程序已成功调用 NdisRegisterProtocol ,但它无法绑定到计算机中的任何基础 NDIS 驱动程序。

  • 正在卸载驱动程序。 也就是说,调用了初始化期间在其驱动程序对象中设置的 Unload 例程,或者调用 了 ProtocolUnbindAdapter 函数来释放驱动程序的最后一个剩余绑定。

    有关 Unload 例程和其他标准内核模式驱动程序例程的详细信息,请参阅 内核模式驱动程序组件

  • 系统正在关闭。 由于驱动程序是最高级别的协议,在初始化时称为 IoRegisterShutdownNotification ,因此已调用其 Shutdown 例程。

    有关详细信息 ,请参阅 IoRegisterShutdownNotification

如果协议具有任何打开的绑定,则它对 NdisDeregisterProtocol 的调用会导致 NDIS 为每个打开的绑定调用协议的 ProtocolUnbindAdapter 函数一次。 ProtocolUnbindAdapter 调用 NdisCloseAdapter 以关闭绑定。

当未完成的打开(如果有)已关闭时, NdisDeregisterProtocol 会释放其调用方设置的所有筛选器,并释放分配给跟踪协议驱动程序的绑定和筛选器的内存 NDIS。

  • 目标平台: 通用
  • 版本:Windows Vista 中的 NDIS 6.0 驱动程序不支持。 请改用 NdisDeregisterProtocolDriver。 支持 Windows Vista 和 Windows XP 中的 NDIS 5.1 驱动程序。

要求

要求
Header ndis.h (包括 Ndis.h)
Library Ndis.lib
IRQL PASSIVE_LEVEL

另请参阅