Michael Stefaniuc : taskmgr: Use NtQuerySystemInformation() directly.
Alexandre Julliard
julliard at winehq.org
Tue Oct 20 15:57:16 CDT 2020
Module: wine
Branch: master
Commit: cf3e6c353bfc19d79237aa7b001be8a8905b8270
URL: https://source.winehq.org/git/wine.git/?a=commit;h=cf3e6c353bfc19d79237aa7b001be8a8905b8270
Author: Michael Stefaniuc <mstefani at winehq.org>
Date: Tue Oct 20 00:31:47 2020 +0200
taskmgr: Use NtQuerySystemInformation() directly.
Signed-off-by: Michael Stefaniuc <mstefani at winehq.org>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
programs/taskmgr/perfdata.c | 23 +++++++++--------------
programs/taskmgr/perfdata.h | 1 -
2 files changed, 9 insertions(+), 15 deletions(-)
diff --git a/programs/taskmgr/perfdata.c b/programs/taskmgr/perfdata.c
index 67f0d934412..a152415357e 100644
--- a/programs/taskmgr/perfdata.c
+++ b/programs/taskmgr/perfdata.c
@@ -30,7 +30,6 @@
#include "taskmgr.h"
#include "perfdata.h"
-static PROCNTQSI pNtQuerySystemInformation = NULL;
static PROCGPIC pGetProcessIoCounters = NULL;
static PROCISW64 pIsWow64Process = NULL;
static CRITICAL_SECTION PerfDataCriticalSection;
@@ -58,22 +57,17 @@ static size_t size_diff(size_t x, size_t y)
BOOL PerfDataInitialize(void)
{
LONG status;
- static const WCHAR wszNtdll[] = {'n','t','d','l','l','.','d','l','l',0};
static const WCHAR wszKernel32[] = {'k','e','r','n','e','l','3','2','.','d','l','l',0};
- pNtQuerySystemInformation = (PROCNTQSI)GetProcAddress(GetModuleHandleW(wszNtdll), "NtQuerySystemInformation");
pGetProcessIoCounters = (PROCGPIC)GetProcAddress(GetModuleHandleW(wszKernel32), "GetProcessIoCounters");
pIsWow64Process = (PROCISW64)GetProcAddress(GetModuleHandleW(wszKernel32), "IsWow64Process");
InitializeCriticalSection(&PerfDataCriticalSection);
- if (!pNtQuerySystemInformation)
- return FALSE;
-
/*
* Get number of processors in the system
*/
- status = pNtQuerySystemInformation(SystemBasicInformation, &SystemBasicInfo, sizeof(SystemBasicInfo), NULL);
+ status = NtQuerySystemInformation(SystemBasicInformation, &SystemBasicInfo, sizeof(SystemBasicInfo), NULL);
if (status != NO_ERROR)
return FALSE;
@@ -102,24 +96,25 @@ void PerfDataRefresh(void)
/* Get new system time */
- status = pNtQuerySystemInformation(SystemTimeOfDayInformation, &SysTimeInfo, sizeof(SysTimeInfo), 0);
+ status = NtQuerySystemInformation(SystemTimeOfDayInformation, &SysTimeInfo, sizeof(SysTimeInfo), 0);
if (status != NO_ERROR)
return;
/* Get new CPU's idle time */
- status = pNtQuerySystemInformation(SystemPerformanceInformation, &SysPerfInfo, sizeof(SysPerfInfo), NULL);
+ status = NtQuerySystemInformation(SystemPerformanceInformation, &SysPerfInfo, sizeof(SysPerfInfo), NULL);
if (status != NO_ERROR)
return;
/* Get system cache information */
- status = pNtQuerySystemInformation(SystemCacheInformation, &SysCacheInfo, sizeof(SysCacheInfo), NULL);
+ status = NtQuerySystemInformation(SystemCacheInformation, &SysCacheInfo, sizeof(SysCacheInfo), NULL);
if (status != NO_ERROR)
return;
/* Get processor time information */
SysProcessorTimeInfo = HeapAlloc(GetProcessHeap(), 0,
- sizeof(*SysProcessorTimeInfo) * SystemBasicInfo.NumberOfProcessors);
- status = pNtQuerySystemInformation(SystemProcessorPerformanceInformation, SysProcessorTimeInfo, sizeof(*SysProcessorTimeInfo) * SystemBasicInfo.NumberOfProcessors, &ulSize);
+ sizeof(*SysProcessorTimeInfo) * SystemBasicInfo.NumberOfProcessors);
+ status = NtQuerySystemInformation(SystemProcessorPerformanceInformation, SysProcessorTimeInfo,
+ sizeof(*SysProcessorTimeInfo) * SystemBasicInfo.NumberOfProcessors, &ulSize);
if (status != NO_ERROR) {
HeapFree(GetProcessHeap(), 0, SysProcessorTimeInfo);
return;
@@ -135,7 +130,7 @@ void PerfDataRefresh(void)
BufferSize += 0x10000;
SysHandleInfoData = HeapAlloc(GetProcessHeap(), 0, BufferSize);
- status = pNtQuerySystemInformation(SystemHandleInformation, SysHandleInfoData, BufferSize, &ulSize);
+ status = NtQuerySystemInformation(SystemHandleInformation, SysHandleInfoData, BufferSize, &ulSize);
if (status == 0xC0000004 /*STATUS_INFO_LENGTH_MISMATCH*/) {
HeapFree(GetProcessHeap(), 0, SysHandleInfoData);
@@ -153,7 +148,7 @@ void PerfDataRefresh(void)
BufferSize += 0x10000;
pBuffer = HeapAlloc(GetProcessHeap(), 0, BufferSize);
- status = pNtQuerySystemInformation(SystemProcessInformation, pBuffer, BufferSize, &ulSize);
+ status = NtQuerySystemInformation(SystemProcessInformation, pBuffer, BufferSize, &ulSize);
if (status == 0xC0000004 /*STATUS_INFO_LENGTH_MISMATCH*/) {
HeapFree(GetProcessHeap(), 0, pBuffer);
diff --git a/programs/taskmgr/perfdata.h b/programs/taskmgr/perfdata.h
index 8b9fabbd910..0b06965d52e 100644
--- a/programs/taskmgr/perfdata.h
+++ b/programs/taskmgr/perfdata.h
@@ -66,7 +66,6 @@ struct _SYSTEM_PAGEFILE_INFORMATION
#define GR_GDIOBJECTS 0 /* Count of GDI objects */
#define GR_USEROBJECTS 1 /* Count of USER objects */
-typedef LONG (WINAPI *PROCNTQSI)(UINT,PVOID,ULONG,PULONG);
typedef BOOL (WINAPI *PROCGPIC)(HANDLE,PIO_COUNTERS);
typedef BOOL (WINAPI *PROCISW64)(HANDLE,PBOOL);
More information about the wine-cvs
mailing list