We have a WFP (Windows Filtering Platform) callout driver installed on a Domain Controller (DC) . Over the course of a week, the DC machine enters an Out-Of-Memory (OOM) state. After analyzing the kernel memory dump and logs, the following observations were made:
- High SMB Traffic:
- The DC server has an SMB share published, which is generating significant SMB traffic.
- The drivers
SRV2.SYS
,SRVNET.SYS
, andMRXSMB.SYS
are allocating large amounts of Non-Paged Pool memory with the tagLShs
(approximately 244 MB).
- TCP Connections and WFP Streams:
- Heavy Non-Paged Pool memory allocations are also observed for:
- TCP connections.
- WFP stream data.
- ALE (Application Layer Enforcement) endpoints.
- WFP Callout Driver Involvement:
- The issue only occurs when our WFP driver's callouts are registered.
- Our driver pends SMB Tree Connect requests for user-mode processing and later performs
FwpsStreamContinue0
to resume the connection.
Are there any known issues with WFP callouts and SMB traffic that could lead to excessive Non-Paged Pool memory usage?
1: kd> !poolused -t 5 2
..
Sorting by NonPaged Pool Consumed
NonPaged Paged
Tag Allocs Used Allocs Used
LShs 58835 244748128 0 0 SMB2 lease hash table , Binary: srv2.sys ⇒ 244MB
EtwB 212 145678592 12 331776 Etw Buffer , Binary: nt!etw
TTcb 55481 67480256 0 0 TCP Connections , Binary: tcpip.sys
StCx 51292 59088384 0 0 WFP stream internal callout context , Binary: netio.sys
AleE 58268 44765632 0 0 ALE endpoint context , Binary: tcpip.sys
ViIn 1 8388608 0 0 Verifier Internal Tag for pool tracking , Binary: nt!Vf
ConT 339 4845568 0 0 UNKNOWN pooltag 'ConT', please update pooltag.txt
File 13398 5834208 0 0 File objects
TOTAL 1342370 857100016 353620 153417152