25 #define NONAMELESSUNION 40 #include "wine/list.h" 50 0, 0, { (
DWORD_PTR)(__FILE__
": pdh_handle_cs") }
79 case DLL_WINE_PREATTACH:
118 #define PDH_MAGIC_COUNTER 0x50444831 139 #define PDH_MAGIC_QUERY 0x50444830 156 if ((
query = heap_alloc_zero(
sizeof(
struct query) )))
182 {
'\\',
'P',
'r',
'o',
'c',
'e',
's',
's',
'o',
'r',
'(',
'_',
'T',
'o',
't',
'a',
'l',
')',
183 '\\',
'%',
' ',
'P',
'r',
'o',
'c',
'e',
's',
's',
'o',
'r',
' ',
'T',
'i',
'm',
'e',0};
185 {
'\\',
'P',
'r',
'o',
'c',
'e',
's',
's',
'o',
'r',0};
187 {
'\\',
'S',
'y',
's',
't',
'e',
'm',
'\\',
'S',
'y',
's',
't',
'e',
'm',
' ',
'U',
'p',
' ',
'T',
'i',
'm',
'e',0};
201 #define TYPE_PROCESSOR_TIME \ 202 (PERF_SIZE_LARGE | PERF_TYPE_COUNTER | PERF_COUNTER_RATE | PERF_TIMER_100NS | PERF_DELTA_COUNTER | \ 203 PERF_INVERSE_COUNTER | PERF_DISPLAY_PERCENT) 205 #define TYPE_UPTIME \ 206 (PERF_SIZE_LARGE | PERF_TYPE_COUNTER | PERF_COUNTER_ELAPSED | PERF_OBJECT_TIMER | PERF_DISPLAY_SECONDS) 235 else p =
wcsrchr( fullpath,
'\\' ) + 1;
635 FIXME(
"%s, %p, %p: stub\n",
debugstr_a(szWildCardPath), mszExpandedPathList, pcchPathListLength);
644 FIXME(
"%s, %p, %p: stub\n",
debugstr_w(szWildCardPath), mszExpandedPathList, pcchPathListLength);
827 value->MultiCount = 1;
873 FIXME(
"remote machine not supported\n");
927 FIXME(
"remote machine not supported\n");
939 unsigned int required =
lstrlenW(
p ) + 1;
985 FIXME(
"log file data source not supported\n");
1113 FIXME(
"log file data source not supported\n");
1128 FIXME(
"log file data source not supported\n");
1149 memset( &eW, 0,
sizeof(eW) );
1191 static const WCHAR bslash[] = {
'\\',0};
1192 static const WCHAR fslash[] = {
'/',0};
1193 static const WCHAR lparen[] = {
'(',0};
1194 static const WCHAR rparen[] = {
')',0};
1195 static const WCHAR fmt[] = {
'#',
'%',
'u',0};
1205 if (!
e || !
e->szCounterName || !
e->szObjectName || !buflen)
1209 if (
e->szMachineName)
1217 if (
e->szInstanceName)
1220 if (
e->szParentInstance)
1247 FIXME(
"%s, %s, %s, %p, %p, %p, %p, %d, 0x%x: stub\n",
debugstr_a(szDataSource),
debugstr_a(szMachineName),
1248 debugstr_a(szObjectName), mszCounterList, pcchCounterListLength, mszInstanceList,
1249 pcchInstanceListLength, dwDetailLevel,
dwFlags);
1261 FIXME(
"%s, %s, %s, %p, %p, %p, %p, %d, 0x%x: stub\n",
debugstr_w(szDataSource),
debugstr_w(szMachineName),
1262 debugstr_w(szObjectName), mszCounterList, pcchCounterListLength, mszInstanceList,
1263 pcchInstanceListLength, dwDetailLevel,
dwFlags);
static WCHAR * pdh_strdup(const WCHAR *src)
double pow(double x, double y)
#define LIST_FOR_EACH_SAFE(cursor, cursor2, list)
#define PDH_NOT_IMPLEMENTED
PDH_STATUS WINAPI PdhMakeCounterPathA(PDH_COUNTER_PATH_ELEMENTS_A *e, LPSTR buffer, LPDWORD buflen, DWORD flags)
PDH_STATUS WINAPI PdhAddCounterA(PDH_HQUERY query, LPCSTR path, DWORD_PTR userdata, PDH_HCOUNTER *counter)
PDH_STATUS WINAPI PdhLookupPerfNameByIndexW(LPCWSTR machine, DWORD index, LPWSTR buffer, LPDWORD size)
#define PDH_MEMORY_ALLOCATION_FAILURE
#define WideCharToMultiByte
WINE_DEFAULT_DEBUG_CHANNEL(pdh)
PDH_STATUS WINAPI PdhGetLogFileTypeA(const char *log, DWORD *type)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint factor
GLsizei const GLchar ** path
PDH_STATUS WINAPI PdhBindInputDataSourceA(PDH_HLOG *source, const char *filenamelist)
struct _PDH_COUNTER_INFO_A PDH_COUNTER_INFO_A
PDH_STATUS WINAPI PdhGetCounterInfoW(PDH_HCOUNTER handle, BOOLEAN text, LPDWORD size, PPDH_COUNTER_INFO_W info)
PDH_STATUS WINAPI PdhCollectQueryDataEx(PDH_HQUERY handle, DWORD interval, HANDLE event)
static const struct source counter_sources[]
GLint GLint GLsizei GLuint * counters
_Check_return_ _CRTIMP int __cdecl _wcsnicmp(_In_reads_or_z_(_MaxCount) const wchar_t *_Str1, _In_reads_or_z_(_MaxCount) const wchar_t *_Str2, _In_ size_t _MaxCount)
BOOL WINAPI DisableThreadLibraryCalls(IN HMODULE hLibModule)
PDH_STATUS WINAPI PdhGetCounterInfoA(PDH_HCOUNTER handle, BOOLEAN text, LPDWORD size, PPDH_COUNTER_INFO_A info)
BOOL WINAPI DECLSPEC_HOTPATCH SetEvent(IN HANDLE hEvent)
DWORD WINAPI GetLastError(VOID)
#define PDH_INVALID_ARGUMENT
#define PDH_CSTATUS_NO_COUNTER
#define DLL_PROCESS_ATTACH
#define PDH_STRING_NOT_FOUND
void(CALLBACK *collect)(struct counter *)
BOOL WINAPI GetComputerNameW(LPWSTR lpBuffer, LPDWORD lpnSize)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
static void CALLBACK collect_uptime(struct counter *counter)
PDH_STATUS WINAPI PdhAddEnglishCounterW(PDH_HQUERY query, LPCWSTR path, DWORD_PTR userdata, PDH_HCOUNTER *counter)
ULONGLONG WINAPI GetTickCount64(VOID)
static DWORD CALLBACK collect_query_thread(void *arg)
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
static IN DWORD IN LPVOID lpvReserved
static void * heap_alloc(size_t len)
HANDLE WINAPI DECLSPEC_HOTPATCH CreateEventW(IN LPSECURITY_ATTRIBUTES lpEventAttributes OPTIONAL, IN BOOL bManualReset, IN BOOL bInitialState, IN LPCWSTR lpName OPTIONAL)
PDH_STATUS WINAPI PdhGetFormattedCounterValue(PDH_HCOUNTER handle, DWORD format, LPDWORD type, PPDH_FMT_COUNTERVALUE value)
PDH_STATUS WINAPI PdhAddEnglishCounterA(PDH_HQUERY query, LPCSTR path, DWORD_PTR userdata, PDH_HCOUNTER *counter)
__WINE_SERVER_LIST_INLINE struct list * list_head(const struct list *list)
PDH_STATUS WINAPI PdhOpenQueryA(LPCSTR source, DWORD_PTR userdata, PDH_HQUERY *query)
__WINE_SERVER_LIST_INLINE void list_add_tail(struct list *list, struct list *elem)
GLenum GLuint GLenum GLsizei const GLchar * buf
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
PDH_STATUS WINAPI PdhAddCounterW(PDH_HQUERY hquery, LPCWSTR path, DWORD_PTR userdata, PDH_HCOUNTER *hcounter)
static const WCHAR path_processor_time[]
#define TYPE_PROCESSOR_TIME
namespace GUID const ADDRINFOEXW ADDRINFOEXW struct timeval OVERLAPPED LPLOOKUPSERVICE_COMPLETION_ROUTINE HANDLE * handle
PDH_STATUS WINAPI PdhEnumObjectItemsA(LPCSTR szDataSource, LPCSTR szMachineName, LPCSTR szObjectName, LPSTR mszCounterList, LPDWORD pcchCounterListLength, LPSTR mszInstanceList, LPDWORD pcchInstanceListLength, DWORD dwDetailLevel, DWORD dwFlags)
PDH_STATUS WINAPI PdhEnumObjectItemsW(LPCWSTR szDataSource, LPCWSTR szMachineName, LPCWSTR szObjectName, LPWSTR mszCounterList, LPDWORD pcchCounterListLength, LPWSTR mszInstanceList, LPDWORD pcchInstanceListLength, DWORD dwDetailLevel, DWORD dwFlags)
static PDH_STATUS format_value(struct counter *counter, DWORD format, union value *raw1, union value *raw2, PDH_FMT_COUNTERVALUE *value)
PDH_STATUS WINAPI PdhCloseQuery(PDH_HQUERY handle)
HANDLE WINAPI DECLSPEC_HOTPATCH CreateThread(IN LPSECURITY_ATTRIBUTES lpThreadAttributes, IN DWORD dwStackSize, IN LPTHREAD_START_ROUTINE lpStartAddress, IN LPVOID lpParameter, IN DWORD dwCreationFlags, OUT LPDWORD lpThreadId)
#define LIST_FOR_EACH(cursor, list)
static const WCHAR version[]
PDH_STATUS WINAPI PdhBindInputDataSourceW(PDH_HLOG *source, const WCHAR *filenamelist)
VOID WINAPI GetLocalTime(OUT LPSYSTEMTIME lpSystemTime)
PDH_STATUS WINAPI PdhGetRawCounterValue(PDH_HCOUNTER handle, LPDWORD type, PPDH_RAW_COUNTER value)
PDH_STATUS WINAPI PdhRemoveCounter(PDH_HCOUNTER handle)
static const WCHAR sizeW[]
VOID WINAPI ExitThread(IN DWORD uExitCode)
static BOOL pdh_match_path(LPCWSTR fullpath, LPCWSTR path)
#define DLL_PROCESS_DETACH
static struct counter * create_counter(void)
PDH_STATUS WINAPI PdhValidatePathExW(PDH_HLOG source, LPCWSTR path)
static const WCHAR nameW[]
__WINE_SERVER_LIST_INLINE void list_remove(struct list *elem)
static const WCHAR machineW[]
PDH_STATUS WINAPI PdhCollectQueryDataWithTime(PDH_HQUERY handle, LONGLONG *timestamp)
PDH_STATUS WINAPI PdhGetCounterTimeBase(PDH_HCOUNTER handle, LONGLONG *base)
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
_CONST_RETURN wchar_t *__cdecl wcschr(_In_z_ const wchar_t *_Str, wchar_t _Ch)
PDH_STATUS WINAPI PdhSetDefaultRealTimeDataSource(DWORD source)
void WINAPI DeleteCriticalSection(PCRITICAL_SECTION)
static const WCHAR path_uptime[]
static WCHAR * pdh_strdup_aw(const char *src)
PDH_STATUS WINAPI PdhCollectQueryData(PDH_HQUERY handle)
PDH_STATUS WINAPI PdhExpandCounterPathA(LPCSTR szWildCardPath, LPSTR mszExpandedPathList, LPDWORD pcchPathListLength)
static void collect_query_data(struct query *query)
PDH_STATUS WINAPI PdhValidatePathExA(PDH_HLOG source, LPCSTR path)
PDH_STATUS WINAPI PdhGetLogFileTypeW(const WCHAR *log, DWORD *type)
PDH_STATUS WINAPI PdhLookupPerfNameByIndexA(LPCSTR machine, DWORD index, LPSTR buffer, LPDWORD size)
static BOOL is_local_machine(const WCHAR *name, DWORD len)
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
static const char machine[]
static PDH_STATUS validate_path(LPCWSTR path)
static void destroy_counter(struct counter *counter)
PDH_STATUS WINAPI PdhExpandWildCardPathA(LPCSTR szDataSource, LPCSTR szWildCardPath, LPSTR mszExpandedPathList, LPDWORD pcchPathListLength, DWORD dwFlags)
LIST_ENTRY ProcessLocksList
int _cdecl swprintf(const WCHAR *,...)
static CRITICAL_SECTION pdh_handle_cs
static void CALLBACK collect_processor_time(struct counter *counter)
#define PDH_CSTATUS_NO_MACHINE
PDH_STATUS WINAPI PdhExpandWildCardPathW(LPCWSTR szDataSource, LPCWSTR szWildCardPath, LPWSTR mszExpandedPathList, LPDWORD pcchPathListLength, DWORD dwFlags)
#define MAX_COMPUTERNAME_LENGTH
#define PDH_CSTATUS_BAD_COUNTERNAME
_Check_return_ _CRTIMP int __cdecl wcscmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
__WINE_SERVER_LIST_INLINE int list_empty(const struct list *list)
BOOL WINAPI SystemTimeToFileTime(IN CONST SYSTEMTIME *lpSystemTime, OUT LPFILETIME lpFileTime)
static unsigned __int64 next
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
void(CALLBACK *collect)(struct counter *)
static HINSTANCE instance
static const WCHAR sourceW[]
static CRITICAL_SECTION_DEBUG pdh_handle_cs_debug
struct _PDH_COUNTER_INFO_W PDH_COUNTER_INFO_W
PDH_STATUS WINAPI PdhValidatePathA(LPCSTR path)
#define MultiByteToWideChar
static struct query * create_query(void)
PDH_STATUS WINAPI PdhSetCounterScaleFactor(PDH_HCOUNTER handle, LONG factor)
PDH_STATUS WINAPI PdhCalculateCounterFromRawValue(PDH_HCOUNTER handle, DWORD format, PPDH_RAW_COUNTER raw1, PPDH_RAW_COUNTER raw2, PPDH_FMT_COUNTERVALUE value)
PDH_STATUS WINAPI PdhMakeCounterPathW(PDH_COUNTER_PATH_ELEMENTS_W *e, LPWSTR buffer, LPDWORD buflen, DWORD flags)
#define PDH_INVALID_HANDLE
PDH_STATUS WINAPI PdhExpandCounterPathW(LPCWSTR szWildCardPath, LPWSTR mszExpandedPathList, LPDWORD pcchPathListLength)
__WINE_SERVER_LIST_INLINE void list_init(struct list *list)
static void destroy_query(struct query *query)
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
GLuint GLuint GLsizei GLenum type
#define PDH_MAX_COUNTER_NAME
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
PDH_STATUS WINAPI PdhGetDllVersion(LPDWORD version)
PDH_STATUS WINAPI PdhLookupPerfIndexByNameW(LPCWSTR machine, LPCWSTR name, LPDWORD index)
PDH_STATUS WINAPI PdhValidatePathW(LPCWSTR path)
PDH_STATUS WINAPI PdhVbAddCounter(PDH_HQUERY query, LPCSTR path, PDH_HCOUNTER *counter)
static const WCHAR path_processor[]
#define PDH_MAGIC_COUNTER
PDH_STATUS WINAPI PdhOpenQueryW(LPCWSTR source, DWORD_PTR userdata, PDH_HQUERY *handle)
PDH_STATUS WINAPI PdhLookupPerfIndexByNameA(LPCSTR machine, LPCSTR name, LPDWORD index)
static BOOL heap_free(void *mem)
#define PDH_CSTATUS_VALID_DATA