如何得到拨号网络传输速度Word文档下载推荐.docx

上传人:b****3 文档编号:15715993 上传时间:2022-11-15 格式:DOCX 页数:11 大小:17.55KB
下载 相关 举报
如何得到拨号网络传输速度Word文档下载推荐.docx_第1页
第1页 / 共11页
如何得到拨号网络传输速度Word文档下载推荐.docx_第2页
第2页 / 共11页
如何得到拨号网络传输速度Word文档下载推荐.docx_第3页
第3页 / 共11页
如何得到拨号网络传输速度Word文档下载推荐.docx_第4页
第4页 / 共11页
如何得到拨号网络传输速度Word文档下载推荐.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

如何得到拨号网络传输速度Word文档下载推荐.docx

《如何得到拨号网络传输速度Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《如何得到拨号网络传输速度Word文档下载推荐.docx(11页珍藏版)》请在冰豆网上搜索。

如何得到拨号网络传输速度Word文档下载推荐.docx

CPP文件rasSpdM.cpp

#include"

stdafx.h"

rasSpdM.h"

#include

#defineTOTALBYTES4096

#defineBYTEINCREMENT1024

LPSTRlpNameStrings=NULL;

LPSTR*lpNamesArray=NULL;

BOOLglo_fFromDynReg=TRUE;

/*

在9x下通过dyn_data注册表得到速度

*/

DWORDGetTotalRecv(void)

{

HKEYhKey;

DWORDdwValue=(DWORD)-1;

if(0==RegOpenKey(HKEY_DYN_DATA,"

PerfStats\\StatData"

&

hKey))

{

DWORDdwType,dwLen=sizeof(DWORD);

RegQueryValueEx(hKey,"

Dial-UpAdapter\\TotalBytesRecvd"

NULL,&

dwType,(BYTE*)&

dwValue,&

dwLen);

RegCloseKey(hKey);

}

returndwValue;

}

DWORDGetTotalXmit(void)

Dial-UpAdapter\\TotalBytesXmit"

DWORDGetPerSecondRecv(void)

Dial-UpAdapter\\BytesRecvd"

DWORDGetPerSecondXmit(void)

Dial-UpAdapter\\BytesXmit"

/*****************************************************************

在NT下通过perData得到

*****************************************************************/

PPERF_OBJECT_TYPEFirstObject(PPERF_DATA_BLOCKPerfData)

return((PPERF_OBJECT_TYPE)((PBYTE)PerfData+

PerfData->

HeaderLength));

PPERF_OBJECT_TYPENextObject(PPERF_OBJECT_TYPEPerfObj)

return((PPERF_OBJECT_TYPE)((PBYTE)PerfObj+

PerfObj->

TotalByteLength));

PPERF_INSTANCE_DEFINITIONFirstInstance(PPERF_OBJECT_TYPEPerfObj)

return((PPERF_INSTANCE_DEFINITION)((PBYTE)PerfObj+

DefinitionLength));

PPERF_INSTANCE_DEFINITIONNextInstance(

PPERF_INSTANCE_DEFINITIONPerfInst)

PPERF_COUNTER_BLOCKPerfCntrBlk;

PerfCntrBlk=(PPERF_COUNTER_BLOCK)((PBYTE)PerfInst+

PerfInst->

ByteLength);

return((PPERF_INSTANCE_DEFINITION)((PBYTE)PerfCntrBlk+

PerfCntrBlk->

ByteLength));

PPERF_COUNTER_DEFINITIONFirstCounter(PPERF_OBJECT_TYPEPerfObj)

return((PPERF_COUNTER_DEFINITION)((PBYTE)PerfObj+

PPERF_COUNTER_DEFINITIONNextCounter(

PPERF_COUNTER_DEFINITIONPerfCntr)

return((PPERF_COUNTER_DEFINITION)((PBYTE)PerfCntr+

PerfCntr->

**

*Loadthecounterandobjectnamesfromtheregistrytothe*

*globalvariablelpNamesArray.*

voidGetNameStrings()

HKEYhKeyPerflib;

//handletoregistrykey

HKEYhKeyPerflib009;

DWORDdwMaxValueLen;

//maximumsizeofkeyvalues

DWORDdwBuffer;

//bytestoallocateforbuffers

DWORDdwBufferSize;

//sizeofdwBuffer

LPSTRlpCurrentString;

//pointerforenumeratingdatastrings

DWORDdwCounter;

//currentcounterindex

//GetthenumberofCounteritems.

RegOpenKeyEx(HKEY_LOCAL_MACHINE,

"

SOFTWARE\\Microsoft\\WindowsNT\\CurrentVersion\\Perflib"

0,

KEY_READ,

&

hKeyPerflib);

dwBufferSize=sizeof(dwBuffer);

RegQueryValueEx(hKeyPerflib,

LastCounter"

NULL,

(LPBYTE)&

dwBuffer,

dwBufferSize);

RegCloseKey(hKeyPerflib);

//Allocatememoryforthenamesarray.

lpNamesArray=(char**)malloc((dwBuffer+1)*sizeof(LPSTR));

//Openkeycontainingcounterandobjectnames.

SOFTWARE\\Microsoft\\WindowsNT\\CurrentVersion\\Perflib\\009"

hKeyPerflib009);

//Getthesizeofthelargestvalueinthekey(CounterorHelp).

RegQueryInfoKey(hKeyPerflib009,

dwMaxValueLen,

NULL);

//Allocatememoryforthecounterandobjectnames.

dwBuffer=dwMaxValueLen+1;

lpNameStrings=(char*)malloc(dwBuffer*sizeof(CHAR));

//ReadCountervalue.

RegQueryValueEx(hKeyPerflib009,

Counter"

(BYTE*)lpNameStrings,&

dwBuffer);

//Loadnamesintoanarray,byindex.

intiC=1;

for(lpCurrentString=lpNameStrings;

*lpCurrentString;

lpCurrentString+=(lstrlen(lpCurrentString)+1))

dwCounter=atol(lpCurrentString);

lpCurrentString+=(lstrlen(lpCurrentString)+1);

//printf("

%dl

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 教育学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1