If you are running windows with a 64bit operating system, you will require the winp.X64.dll rather than winp.dll. However it seems that the file pulled down is determined by what java is running, not the OS. So if you are using a 32 bit java, it will pull down the 32 bit version of the .dll. I imagine the inverse is also true
This can result in the following error and the agents wont start up.
I have only seen this on remote agents, but may also be the case locally as well.
You can work around this by using a java which matches the operating system