Hello guys,
We have a NDIS 6.0 Lightweight filter running in a virtual machine (Windows 7 x64) on VMWare ESXi Server 5.1.
Our driver binds to 2 adapters in that virtual machine. First one is an "Intel(R)PRO/100MT Network Connection", and we have no problem with it.
The second one is the "vmxnet3 Ehernet Adapter" and we are having problems with it, specifically when it comes to unbinding our driver from that adapter, since NDIS is not unloading us (going over NDIS traces we don't see a call to the "NdisMPauseComplete" callback) because it notices that we have outstanding, uncompleted operations.
After some debugging we have seen that there is some unbalance, between the NBLs we inject and the calls that NDIS should make to our completion handler. We have noticed this behavior only with the "vmxnet3" adapter, as the balance between injections and completion handler calls is fine on the other adapter. The problem is that our driver is being called a lot less times than what it should, so lots of our NBLs cannot be freed.
We think that the driver handling VMWare's VMXNET3 adapter named "vmxnet3n61x64.sys" (NDIS6.20) is not completing our injected NBLs.
Please note that the other adapter (Intel1000) is completing every injected packet, so we are pretty sure it must be some issue with VMWare's virtual NIC.
Maybe someone from VMWare might read this thread and throw some suggestions?
Thanks a lot in advance!