How to use USB adapter from NDIS filter driver.

I see you allocating memory and creating an MDL. I don’t see you creating an NBL. Are you creating a new NBL? Are you modifying an existing NBL?

Yes. I create NBL and NB. To be precise, I take it from a clone made earlier and queued. But they are easy to release. Just I freeing all NBs and all NBLs in a cycle (maybe many NBLs (NBL chain)) in the complete routine.