I am having nearly the same issue as Dong using a different configuration on a Windows 7 system. I have a directshow H.264 encoder filter that uses the VPP to perform YUY2->NV12 conversion and deinterlacing, a user plugin than accepts the VPP output surface and tees the raw frame out into the host application through a frame server, and finally the video encode operation. In effect I call RunFrameVPPAsync, MFXVideoUSER_ProcessFrameAsync, and then EncodeFrameAsync.
The filter works as expected for a while, but eventually I see an access violation internally in the MediaSDK dll; typically in MFXVideoVPP_GetVPPStat. If I never load the user plugin I don't see the access violation, but if I even register it an do absolutely nothing with the plugin (mfxExecute is a noop) it still causes an access violation eventually. I have also tried explicitly using syncpoints on the VPP, user plugin, and encode operation to test this as a synchronous operation.
Everything is executing in system memory using the software implementation of the Media SDK. I'm at a loss for how to further debug the issue because the access violation always appears internally in the closed-source MediaSDK binaries. I've thoroughly checked the state of the pipeline after an access violation is triggered and synchronization/states look normal.
My next step is going to be rolling back to a previous SDK release to see if the issue still exists. I'll keep tracking this issue though to see if others are able to come up with anything.
What version of Media SDK are you using? 2013?
Can you please provide a Media SDK "pre-frame" trace log capturing the moment when the issue occurs?