NdisFRegisterFilterDriver 函数 (ndis.h)

筛选器驱动程序调用 NdisFRegisterFilterDriver 函数,用于向 NDIS 注册其 FilterXxx 函数。

语法

NDIS_STATUS NdisFRegisterFilterDriver(
  [in]  PDRIVER_OBJECT                      DriverObject,
  [in]  NDIS_HANDLE                         FilterDriverContext,
        PNDIS_FILTER_DRIVER_CHARACTERISTICS FilterDriverCharacteristics,
  [out] PNDIS_HANDLE                        NdisFilterDriverHandle
);

参数

[in] DriverObject

指向筛选器驱动程序在其 DriverEntry 例程中的 Argument1 参数处接收的不透明驱动程序对象的指针。 (有关详细信息,请参阅 NDIS 筛选器驱动程序的 DriverEntry。)

[in] FilterDriverContext

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

FilterDriverCharacteristics

指向 的指针 NDIS_FILTER_DRIVER_CHARACTERISTICS 筛选器驱动程序使用其 FilterXxx 函数入口点创建和初始化的结构。

[out] NdisFilterDriverHandle

指向句柄变量的指针。 如果调用 NdisFRegisterFilterDriver 成功,NDIS 使用筛选器驱动程序句柄填充此变量。 筛选器驱动程序保存此句柄,稍后将此句柄传递给需要筛选器驱动程序句柄作为输入参数的 NDIS 函数,例如 NdisFDeregisterFilterDriver

返回值

NdisFRegisterFilterDriver 返回以下状态值之一:
返回代码 说明
NDIS_STATUS_SUCCESS
如果 NdisFRegisterFilterDriver 注册了筛选器驱动程序,则返回NDIS_STATUS_SUCCESS。
NDIS_STATUS_BAD_VERSION
FilterCharacteristics 结构的 MajorNdisVersion 成员中指定的版本无效。
NDIS_STATUS_BAD_CHARACTERISTICS
至少一个在 中指定的成员 NDIS_FILTER_DRIVER_CHARACTERISTICS 无效。
NDIS_STATUS_INVALID_PARAMETER
驱动程序传递到的至少一个输入参数 NdisFRegisterFilterDriver 无效。
NDIS_STATUS_RESOURCES
NdisFRegisterFilterDriver 因资源不足而失败。
NDIS_STATUS_FAILURE
如果上述值均未应用,则 NdisFRegisterFilterDriver 返回NDIS_STATUS_FAILURE。

注解

筛选器驱动程序调用 NdisFRegisterFilterDriver 函数来自其 DriverEntry 例程。 有关 DriverEntry 的详细信息,请参阅 NDIS 筛选器驱动程序的 DriverEntry

调用 NdisFRegisterFilterDriver 的 驱动程序必须准备好立即调用其任何 FilterXxx 函数。 有关详细信息,请参阅 初始化筛选器驱动程序

每个筛选器驱动程序通过设置 导出一组 FilterXxx 函数 NDIS_FILTER_DRIVER_CHARACTERISTICS 结构和调用 NdisFRegisterFilterDriver。 NDIS 将此结构复制到 NDIS 库的内部存储。

为了允许筛选器驱动程序注册可选服务,NDIS 在 的上下文中调用 FilterSetOptions 函数 NdisFRegisterFilterDriver

注册后,筛选器驱动程序稍后可以调用 NdisSetOptionalHandlers 函数来更改可选 FilterXxx 函数的入口点。

筛选器驱动程序调用 NdisFDeregisterFilterDriver 函数,用于释放以前使用 分配的资源 NdisFRegisterFilterDriver

要求

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

另请参阅

NDIS 筛选器驱动程序的 DriverEntry

FilterAttach

初始化筛选器驱动程序

NDIS_FILTER_DRIVER_CHARACTERISTICS

NdisFDeregisterFilterDriver

NdisSetOptionalHandlers