Today, my colleague wrote a program to get the Window service with Sigar, and found that several services could not get out anyway.
I looked at the code and got it using OpenService, so I wrote a Demo using VC, but I still couldn’t get it.
But the error code is this 5, check MSDN is access problem.
Take a look at the permission bits obtained by Sigar, compare MSDN, Sigar USES ALL_ACCESS, but in Windows Scardspace, how to report an error. t=16325
After searching a few articles, the question was not completely solved, but fortunately we just want to get the status, not start and stop service, so we changed the source code, add a read permission bit (see MSDN), so
Even the bypass solves the problem.  

Read More: