public static extern PdhStatus PdhEnumObjects(
     string szDataSource,
     string szMachineName,
     [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 4)] char[] mszObjectList,
     ref uint pcchBufferLength,
     PdhDetailLevel dwDetailLevel,
     int bRefresh
     );
 public static extern PdhStatus PdhEnumObjectItems(
     string szDataSource,
     string szMachineName,
     string szObjectName,
     [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 5)] char[] mszCounterList,
     ref uint pcchCounterListLength,
     [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 7)] char[] mszInstanceList,
     ref uint pcchInstanceListLength,
     PdhDetailLevel dwDetailLevel,
     uint dwFlags
     );