I am trying to do something like this in C#. I found out how to call Win32 methods from C# using P/Invoke from this link. However I met some difficulties in implementing P/I
iirc LPCTSTR breaks down to: LP == Long Pointer // relic from 16- to 32-bit thunking
C == Constant
TSTR == TStr // TString, kind of a placeholder that would get substituted for different kinds of strings depending on various C headers and #defines
what it means to you: it is a pointer to a string, for C# just use string and you'll be okay.
PDH_STATUS is a pointer to a DH_STATUS struct, so you will need to define a C# structure to match.
Check out P/Invoke.Net for some examples of using p/invoke on standard Windows headers, structures, and functions. The website is kind of klunky, you just have to keep clicking and expanding items in the left column.
P/Invoke isn't well documented, but once you map the structure and the extern function call you should be in business.