ULONG; Reserved3;
ULONG; MmSystemCachePage;
ULONG; PagedPoolPage;
ULONG; SystemDriverPage;
ULONG; FastReadNoWait;
ULONG; FastReadWait;
ULONG; FastReadResourceMiss;
ULONG; FastReadNotPossible;
ULONG; FastMdlReadNoWait;
ULONG; FastMdlReadWait;
ULONG; FastMdlReadResourceMiss;
ULONG; FastMdlReadNotPossible;
ULONG; MapDataNoWait;
ULONG; MapDataWait;
ULONG; MapDataNoWaitMiss;
ULONG; MapDataWaitMiss;
ULONG; PinMappedDataCount;
ULONG; PinReadNoWait;
ULONG; PinReadWait;
ULONG; PinReadNoWaitMiss;
ULONG; PinReadWaitMiss;
ULONG; CopyReadNoWait;
ULONG; CopyReadWait;
ULONG; CopyReadNoWaitMiss;
ULONG; CopyReadWaitMiss;
ULONG; MdlReadNoWait;
ULONG; MdlReadWait;
ULONG; MdlReadNoWaitMiss;
ULONG; MdlReadWaitMiss;
ULONG; ReadAheadIos;
ULONG; LazyWriteIos;
ULONG; LazyWritePages;
ULONG; DataFlushes;
ULONG; DataPages;
ULONG; ContextSwitches;
ULONG; FirstLevelTbFills;
ULONG; SecondLevelTbFills;
ULONG; SystemCall;
}SYSTEM_PERFORMANCE_INFORMATION,*PSYSTEM_PERFORMANCE_INFORMATION;
typedef struct __SYSTEM_PROCESSOR_TIMES
{
LARGE_INTEGER IdleTime;
LARGE_INTEGER KernelTime;
LARGE_INTEGER UserTime;
LARGE_INTEGER DpcTime;
LARGE_INTEGER InterruptTime;
ULONG InterruptCount;
}SYSTEM_PROCESSOR_TIMES,*PSYSTEM_PROCESSOR_TIMES;
typedef struct _SYSTEM_PAGEFILE_INFORMATION
{
ULONG NetxEntryOffset;
ULONG CurrentSize;
ULONG TotalUsed;
ULONG PeakUsed;
UNICODE_STRING FileName;
}SYSTEM_PAGEFILE_INFORMATION,*PSYSTEM_PAGEFILE_INFORMATION;
typedef struct _SYSTEM_CACHE_INFORMATION
{
ULONG SystemCacheWsSize;
ULONG SystemCacheWsPeakSize;
ULONG SystemCacheWsFaults;
ULONG SystemCacheWsMinimum;
ULONG SystemCacheWsMaximum;
ULONG TransitionSharedPages;
ULONG TransitionSharedPagesPeak;
ULONG Reserved[2];
}SYSTEM_CACHE_INFORMATION,*PSYSTEM_CACHE_INFORMATION;
typedef NTSTATUS (__stdcall * NTQUERYSYSTEMINFORMATION)
(IN SYSTEM_INFORMATION_CLASS,
IN OUT PVOID,
INTULONG,
OUTPULONG OPTION);
NTQUERYSYSTEMINFORMATION NtQuerySystemInformation;
DWORD PerfInfo()
{
SYSTEM_PERFORMANCE_INFORMATION SystemPerfInfo;
HMODULE hNtDll = NULL;
DWORDdwNumberBytes;
DWORDdwReturnLength;
NTSTATUSStatus;
LONGLONGllTempTime;
__try
{
hNtDll = LoadLibrary("NtDll.dll");
if(hNtDll == NULL)
{
printf("LoadLibrary Error: %dn",GetLastError());
; __leave;
}
NtQuerySystemInformation = (NTQUERYSYSTEMINFORMATION)GetProcAddress(hNtDll,"NtQuerySystemInformation");
if(NtQuerySystemInformation == NULL)
{
printf("GetProcAddress for NtQuerySystemInformation Error: %dn",GetLastError());
__leave;
}
dwNumberBytes = sizeof(SYSTEM_PERFORMANCE_INFORMATION);
Status = NtQuerySystemInformation(SYSTEM_PERF_INFO,
&SystemPerfInfo,
dwNumberBytes,
&dwReturnLength);
if(Status != STATUS_SUCCESS)
{
printf("NtQuerySystemInformation for Performance Error: %dn",GetLastError());
__leave;
}
printf("IdleTime:tt");
llTempTime; = SystemPerfInfo.IdleTime.QuadPart;
llTempTime /= 10000;
printf("%d:",llTempTime/(60*60*1000));
llTempTime %= 60*60*1000;
printf("%.2d:",llTempTime/(60*1000));
llTempTime %= 60*1000;
printf("%.2d.",llTempTime/1000);
llTempTime %= 1000;
printf("%.3dn",llTempTime);
printf("ReadOperationCount:t%-10dt",SystemPerfInfo.ReadOperationCount);
printf("ReadTransferCount:t%dn",SystemPerfInfo.ReadTransferCount);
printf("WriteOperationCount:t%-10dt",SystemPerfInfo.WriteOperationCount);
printf("WriteTransferCount:t%dn",SystemPerfInfo.WriteTransferCount);
printf("OtherOperationCount:t%-10dt",SystemPerfInfo.OtherOperationCount);
printf("OtherTransferCount:t%dn",SystemPerfInfo.OtherTransferCount);
printf("AvailablePages:tt%-10dt",SystemPerfInfo.AvailablePages);
推荐阅读
- Windows2003 远程桌面超过最大连接数解决办法
- win2003 sql 1433 端口连接问题
- Windows 2003系统加速十四招大法
- 为Windows 2003加装视频压缩
- Win 2003系统网络负载均衡的实现
- Windows 2003优化配置
- 变Win 2003为工作站
- 配置基于Win 2003 的服务器
- Win2003下提高FSO的安全性
- Win 2003系统十例最新配置技巧
