记录一次wfp过滤驱动,callout添加过滤失败,C0220014 STATUS_FWP_INCOMPATIBLE_LAYER  The operation is not supported by the specified layer


在开发一个wfp过滤驱动。

 

调用FwpmFilterAdd总是返回C0220014错误

C0220014错误

STATUS_FWP_INCOMPATIBLE_LAYER 

The operation is not supported by the specified layer.

经过排查,发现驱动卸载之后发生内存泄漏。因为一个内核事件初始化后没有清除。

    KeInitializeEvent(
        &gPacketQueueEvent,
        NotificationEvent,
        FALSE
    );

另外,在callout注册失败后,直接调用FwpmEngineClose,关闭了过滤引擎。没有提前清除callout。

 

修复代码后,一切正常。