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