AKNOT's right, & psapi.dll has MANY build versions that differ over time & diff. OS' versions from MS... iirc, it didn't come "stock" as part of the OS in Windows 2000, until one of the service pack's for it came out!
It's funny, because Windows' "System/Windows File Protection" SHOULD be countering for it... but this is a case apparently, when it does not, properly.
I've seen it before myself.
You'll run into that every now & then... "DLL HELL", almost to a tee is being described here w/ your problem in fact.
His method of finding & using the version build of that DLL/library + placing it in %WinDir%\system32 will probably fix it in no time flat...
APK
P.S.=> What happens is, the functions being "exported" (made available) in PSAPI.DLL change a return data variable value type many times... OR, new functions are added in newer builds, & when a program goes to call them & they are JUST not there (function name) in an older build of a DLL (dynamic link library)?
It flips programs out... like you are seeing...
OR, if say a function returns integer data (1/0 success/failure values for example) in older builds, but for SOME reason in newer builds they change it to a BOOLEAN True/False value instead?
Function/Procedures/SubRoutines in the program itself get "hosed" expecting integer 1-0 values for success/failure, vs. boolean True/False they get back instead & that too, flips code out...
Which is WHY error trapping built by the coder to gracefully issue a warning message to a user, & close a program properly or whatever (resume next maybe) himself to counter for this ALWAYS SHOULD BE PRACTICED IN CODE, & IT'S NOT! apk