网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
枚举本地-远程NT系统进程
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式
        }


           // next string


           p += (strlen(p) + 1);


        }


        // free the counter names buffer


       free( buf );


        // allocate the initial buffer for the performance data


       dwSize = INITIAL_SIZE;


        buf = (LPSTR) malloc( dwSize );





        while (TRUE)


        {


           if (buf == NULL)


              __leave;


            memset( buf, 0, dwSize );


            rc=RegQueryValueEx(ghPerfKey,szSubKey,NULL,&dwType,(LPBYTE) buf,&dwSize);


            pPerf = (PPERF_DATA_BLOCK) buf;


           // check for success and valid perf data block signature


           if ((rc == ERROR_SUCCESS) &&


                  (dwSize > 0) &&


                 (pPerf)->Signature[0] == (WCHAR)''P'' &&


                 (pPerf)->Signature == (WCHAR)''E'' &&


                 (pPerf)->Signature == (WCHAR)''R'' &&


                 (pPerf)->Signature == (WCHAR)''F'' )


              break;


           // if buffer is not big enough, reallocate and try again


           if (rc == ERROR_MORE_DATA)


           {


              dwSize += EXTEND_SIZE;


              buf = (LPSTR) realloc( buf, dwSize );


           }


            else __leave;


        }


        // set the perf_object_type pointer


        pObj = (PPERF_OBJECT_TYPE) ((DWORD)pPerf + pPerf->HeaderLength);


        //loop thru the performance counter definition records looking


        //for the process id counter and then save its offset


       pCounterDef = (PPERF_COUNTER_DEFINITION) ((DWORD)pObj + pObj->HeaderLength);


        for (i=0; i<(DWORD)pObj->NumCounters; i++)


        {


           if (pCounterDef->CounterNameTitleIndex == dwProcessIdTitle)


           {


              dwProcessIdCounter = pCounterDef->CounterOffset;


              break;


           }


            pCounterDef++;


        }





        pInst = (PPERF_INSTANCE_DEFINITION) ((DWORD)pObj + pObj->DefinitionLength);


        // loop thru the performance instance data extracting each process name


        // and process id


        for (i=0; i < (DWORD)pObj->NumInstances-1 && i<MaxProcessNum; i++)


        {


           // pointer to the process name


           p = (LPSTR) ((DWORD)pInst + pInst->NameOffset);


           // convert it to ascii


         
  • 上一篇资讯: 获得OnOK退出控制
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号