亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? drivers.c

?? ReactOS是一些高手根據(jù)Windows XP的內(nèi)核編寫出的類XP。內(nèi)核實現(xiàn)機理和API函數(shù)調(diào)用幾乎相同。甚至可以兼容XP的程序。喜歡研究系統(tǒng)內(nèi)核的人可以看一看。
?? C
字號:
/* $Id: drivers.c 21880 2006-05-10 17:47:44Z ion $
*/
/*
 * COPYRIGHT:   See COPYING in the top level directory
 * LICENSE:     See LGPL.txt in the top level directory
 * PROJECT:     ReactOS system libraries
 * FILE:        reactos/lib/epsapi/enum/drivers.c
 * PURPOSE:     Enumerate system modules
 * PROGRAMMER:  KJK::Hyperion <noog@libero.it>
 * UPDATE HISTORY:
 *              02/04/2003: Created
 *              12/04/2003: internal PSAPI renamed EPSAPI (Extended PSAPI) and
 *                          isolated in its own library to clear the confusion
 *                          and improve reusability
 */

#define WIN32_NO_STATUS
#include <windows.h>
#define NTOS_MODE_USER
#include <ndk/ntndk.h>

#define NDEBUG
#include <debug.h>

#include <epsapi/epsapi.h>

NTSTATUS NTAPI
PsaEnumerateSystemModules(IN PSYSMOD_ENUM_ROUTINE Callback,
                          IN OUT PVOID CallbackContext)
{
  PRTL_PROCESS_MODULES psmModules;
  NTSTATUS Status = STATUS_SUCCESS;

#if 0
  __try
  {
#else
  do
  {
#endif
  /* capture the system modules */
  Status = PsaCaptureSystemModules(&psmModules);
 
  if(!NT_SUCCESS(Status))
  {
    break;
  }

  /* walk the system modules */
  Status = PsaWalkSystemModules(psmModules, Callback, CallbackContext);
#if 0
  }
  __finally
  {
#else
  } while(0);
#endif
  /* free the capture */
  PsaFreeCapture(psmModules);
#if 0
  }
#endif
 
  return Status;
}

NTSTATUS NTAPI
PsaCaptureSystemModules(OUT PRTL_PROCESS_MODULES *SystemModules)
{
  SIZE_T nSize = 0;
  PRTL_PROCESS_MODULES psmModules = NULL;
  NTSTATUS Status;

#if 0
  __try
  {
#else
  do
  {
#endif
  /* initial probe. We just get the count of system modules */
  Status = NtQuerySystemInformation(SystemModuleInformation,
                                    &nSize,
                                    sizeof(nSize),
                                    NULL);

  if(!NT_SUCCESS(Status) && (Status != STATUS_INFO_LENGTH_MISMATCH))
  {
    DPRINT(FAILED_WITH_STATUS, "NtQuerySystemInformation", Status);
    break;
  }

  /* RATIONALE: the loading of a system module is a rare occurrence. To
     minimize memory operations that could be expensive, or fragment the
     pool/heap, we try to determine the buffer size in advance, knowing that
     the number of elements is unlikely to change */
  nSize = sizeof(RTL_PROCESS_MODULES) +
          (nSize * sizeof(RTL_PROCESS_MODULES));

  psmModules = NULL;

  do
  {
    PVOID pTmp;
  
    /* free the buffer, and reallocate it to the new size. RATIONALE: since we
       ignore the buffer's content at this point, there's no point in a realloc,
       that could end up copying a large chunk of data we'd discard anyway */
    PsaiFree(psmModules);
    pTmp = PsaiMalloc(nSize);

    if(pTmp == NULL)
    {
      Status = STATUS_NO_MEMORY;
      DPRINT(FAILED_WITH_STATUS, "PsaiMalloc", Status);
      break;
    }

    psmModules = pTmp;

    /* query the information */
    Status = NtQuerySystemInformation(SystemModuleInformation,
                                      psmModules,
                                      nSize,
                                      NULL);

    /* double the buffer for the next loop */
    nSize *= 2;
  } while(Status == STATUS_INFO_LENGTH_MISMATCH);

  if(!NT_SUCCESS(Status))
  {
    DPRINT(FAILED_WITH_STATUS, "NtQuerySystemInformation", Status);
    break;
  }

  *SystemModules = psmModules;

  Status = STATUS_SUCCESS;
#if 0
  }
  __finally
  {
#else
  } while(0);
#endif
  /* in case of failure, free the buffer */
  if(!NT_SUCCESS(Status))
  {
    PsaiFree(psmModules);
  }
#if 0
  }
#endif

  return Status;
}

NTSTATUS NTAPI
PsaWalkSystemModules(IN PRTL_PROCESS_MODULES SystemModules,
                     IN PSYSMOD_ENUM_ROUTINE Callback,
                     IN OUT PVOID CallbackContext)
{
  ULONG i;
  NTSTATUS Status;

  /* repeat until all modules have been returned */
  for(i = 0; i < SystemModules->NumberOfModules; i++)
  {
    /* return current module to the callback */
    Status = Callback(&(SystemModules->Modules[i]), CallbackContext);
  
    if(!NT_SUCCESS(Status))
    {
      return Status;
    }
  }

  return STATUS_SUCCESS;
}

PRTL_PROCESS_MODULE_INFORMATION FASTCALL
PsaWalkFirstSystemModule(IN PRTL_PROCESS_MODULES SystemModules)
{ 
  return &(SystemModules->Modules[0]);
}

PRTL_PROCESS_MODULE_INFORMATION FASTCALL
PsaWalkNextSystemModule(IN PRTL_PROCESS_MODULES CurrentSystemModule)
{
  return (PRTL_PROCESS_MODULE_INFORMATION)((ULONG_PTR)CurrentSystemModule +
                                            (FIELD_OFFSET(RTL_PROCESS_MODULES, Modules[1]) -
                                             FIELD_OFFSET(RTL_PROCESS_MODULES, Modules[0])));
}

/* EOF */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久午夜国产精品| 韩国女主播成人在线观看| 91亚洲精华国产精华精华液| 国产精品三级视频| 成人美女视频在线看| 国产精品久久久久久久久免费桃花| 国产成人av一区二区| 国产精品成人免费| 欧美性一区二区| 免费人成精品欧美精品| 欧美精品一区二区在线观看| 国产成人日日夜夜| 日韩美女视频一区| 色婷婷久久久亚洲一区二区三区| 亚洲一区二区免费视频| 日韩欧美一区二区免费| 国产999精品久久| 亚洲视频在线观看一区| 欧美性大战久久| 久久99国产精品尤物| 国产精品久久久久一区二区三区| 在线观看成人小视频| 久久国产精品99精品国产| 国产欧美精品一区二区色综合 | 欧美日韩极品在线观看一区| 久久精品国产色蜜蜜麻豆| 久久综合色之久久综合| proumb性欧美在线观看| 午夜亚洲国产au精品一区二区| 日韩欧美亚洲一区二区| 97国产一区二区| 日韩精品电影在线观看| 国产女人18毛片水真多成人如厕 | 亚洲人成电影网站色mp4| 欧美亚洲免费在线一区| 国产一区二区久久| 亚洲国产欧美在线| 中文字幕成人av| 91精品国产综合久久久久久漫画 | 欧美一区二区三区四区高清| 国产精品99久久久| 亚洲成av人片在线观看无码| 国产视频视频一区| 欧美高清dvd| 99久久久国产精品免费蜜臀| 另类调教123区| 亚洲国产欧美在线| 国产精品久久久久毛片软件| 日韩一区二区三区观看| 91国偷自产一区二区开放时间| 黄色资源网久久资源365| 亚洲一区在线观看视频| 国产精品日日摸夜夜摸av| 日韩丝袜美女视频| 欧美性色黄大片手机版| 丁香婷婷综合激情五月色| 日韩av电影天堂| 一区二区三区在线视频播放| 国产精品久久久久婷婷| 久久欧美中文字幕| 欧美一级欧美一级在线播放| 在线日韩一区二区| 成人性生交大合| 国产一区二区伦理| 日韩av电影一区| 亚洲图片自拍偷拍| 亚洲午夜在线电影| 亚洲狠狠丁香婷婷综合久久久| 国产精品二三区| 亚洲欧洲www| 综合欧美一区二区三区| 成人欧美一区二区三区在线播放| 久久久精品免费观看| 久久久精品蜜桃| 国产欧美日韩卡一| 成人免费一区二区三区视频| 国产精品免费免费| 国产精品白丝在线| 亚洲激情网站免费观看| 亚洲精品免费在线播放| 一区二区三区丝袜| 亚洲6080在线| 老鸭窝一区二区久久精品| 国模一区二区三区白浆| 国产精品99久久久久久似苏梦涵 | 亚洲成人手机在线| 国产精品的网站| 欧美国产日韩a欧美在线观看| 欧美亚洲一区三区| 综合久久久久久| 国产欧美一区二区在线| 日韩精品专区在线影院观看| 免费观看在线综合| 国产亚洲婷婷免费| 久久先锋影音av| 8v天堂国产在线一区二区| 欧美丝袜丝交足nylons图片| 成人免费视频一区二区| 亚洲18女电影在线观看| 久久99精品国产91久久来源| 亚欧色一区w666天堂| 一片黄亚洲嫩模| 久久久久99精品一区| 精品人伦一区二区色婷婷| 欧美日本国产视频| 欧美三级中文字幕| 久久影院视频免费| 精品久久久久久久人人人人传媒 | 国产一区二区三区观看| 不卡的av在线| 成人sese在线| 成人黄色免费短视频| 国产主播一区二区三区| 粉嫩av一区二区三区| 国产永久精品大片wwwapp| 久久精品国产亚洲5555| 91一区二区在线观看| 色综合天天在线| 欧美中文字幕一区| 在线一区二区三区做爰视频网站| 日韩视频一区二区三区在线播放| 91精品国产高清一区二区三区蜜臀| 欧美喷水一区二区| 亚洲资源中文字幕| 国产成a人亚洲| 99久久伊人久久99| 欧美在线免费观看亚洲| 久久精品一区二区三区不卡| 久久精品人人做| 亚洲伦在线观看| 国产精品视频九色porn| 日韩国产欧美在线播放| 韩日av一区二区| 成人免费av网站| 久久亚区不卡日本| 国产精品欧美综合在线| 国产精品久99| 亚洲视频一区二区在线| 日韩激情在线观看| 国产精品综合一区二区三区| 午夜精品视频在线观看| 99久久777色| 欧美丰满高潮xxxx喷水动漫| 久久影院视频免费| 精品一区二区三区在线播放| 成人一道本在线| 91精品福利在线| 亚洲美女免费在线| 久久99精品久久久久久国产越南 | 在线观看精品一区| 欧美成人在线直播| 26uuu国产一区二区三区| 成人欧美一区二区三区黑人麻豆| 午夜免费久久看| 大尺度一区二区| 国产欧美日本一区二区三区| 一区二区三区在线观看动漫| 老司机精品视频导航| 欧美一区二区三区免费在线看| 久久久精品tv| 日精品一区二区三区| 亚洲一区在线播放| 在线免费观看不卡av| 欧美精品一区二区高清在线观看| 亚洲视频精选在线| 色综合久久九月婷婷色综合| 精品国产麻豆免费人成网站| 中文字幕一区二区三区不卡 | 亚洲欧美日韩系列| 国产一区二区三区精品欧美日韩一区二区三区 | 国产女主播视频一区二区| 亚洲一区二区欧美| 岛国精品一区二区| 亚洲欧洲另类国产综合| 国内精品久久久久影院色| 欧美日韩mp4| 经典三级视频一区| 欧美女孩性生活视频| 亚洲视频免费在线观看| 欧美最新大片在线看| 国产精品久久久久精k8| 国产精品亚洲综合一区在线观看| 日韩无一区二区| 天天综合天天综合色| 在线观看一区不卡| 精品国产乱码久久久久久影片| 久久丁香综合五月国产三级网站| 欧美在线观看你懂的| 亚洲美女精品一区| 欧美一区二区视频在线观看2020| 夜夜爽夜夜爽精品视频| 91麻豆视频网站| 男女性色大片免费观看一区二区| 欧美午夜免费电影| 亚洲一区二区欧美| 成人在线综合网站| 国产精品嫩草久久久久| 成人黄色片在线观看| 精品国产伦理网| 国产精品一二三四|