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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? servicestatus.h

?? Rootkit upload by benina rea
?? H
字號:
/******************************************************************************
Module:  ServiceStatus.h
Notices: Copyright (c) 2000 Jeffrey Richter
Purpose: This class wraps a SERVICE_STATUS structure ensuring proper use.
******************************************************************************/


#pragma once   // Include this header file once per compilation unit


///////////////////////////////////////////////////////////////////////////////

#include <windows.h>
#include <tchar.h>


class CGate {
public:
   CGate(BOOL fInitiallyUp = TRUE, PTSTR pszName = NULL) { 
      m_hevt = ::CreateEvent(NULL, FALSE, fInitiallyUp, pszName); 
   }

   ~CGate() { 
      ::CloseHandle(m_hevt); 
   }

   DWORD WaitToEnterGate(DWORD dwTimeout = INFINITE, BOOL fAlertable = FALSE) {
      return(::WaitForSingleObjectEx(m_hevt, dwTimeout, fAlertable)); 
   }
   
   VOID LiftGate() { ::SetEvent(m_hevt); }

private:
    HANDLE m_hevt;
};


class CServiceStatus : public SERVICE_STATUS {
public:
   CServiceStatus();

   void SetDebugMode() { m_fDebug = TRUE; }

   BOOL Initialize(PCTSTR szServiceName, LPHANDLER_FUNCTION_EX pfnHandler, 
      PVOID pvContext, BOOL fOwnProcess, BOOL fInteractWithDesktop = FALSE);

   VOID AcceptControls(DWORD dwFlags, BOOL fAccept = TRUE);
   BOOL ReportStatus();

   BOOL SetUltimateState(DWORD dwUltimateState, DWORD dwWaitHint = 0);
   BOOL AdvanceState(DWORD dwWaitHint, DWORD dwCheckPoint = 0);
   BOOL ReportUltimateState();
   BOOL ReportWin32Error(DWORD dwError);
   BOOL ReportServiceSpecificError(DWORD dwError);

   operator DWORD() const { return(dwCurrentState); }

private:
   BOOL m_fDebug;
   SERVICE_STATUS_HANDLE m_hss;
   CGate m_gate;
};


///////////////////////////////////////////////////////////////////////////////


inline CServiceStatus::CServiceStatus() {

   ZeroMemory(this, sizeof(SERVICE_STATUS));
   m_hss = NULL;
   m_fDebug = FALSE;
}


///////////////////////////////////////////////////////////////////////////////


inline VOID CServiceStatus::AcceptControls(DWORD dwFlags, BOOL fAccept) {

   if (fAccept) dwControlsAccepted |= dwFlags;
   else dwControlsAccepted &= ~dwFlags;
}


///////////////////////////////////////////////////////////////////////////////


inline BOOL CServiceStatus::ReportStatus() {

   BOOL fOk = m_fDebug ? TRUE : ::SetServiceStatus(m_hss, this);
   return(fOk);
}


///////////////////////////////////////////////////////////////////////////////

   
inline BOOL CServiceStatus::ReportWin32Error(DWORD dwError) {
   dwWin32ExitCode = dwError;
   dwServiceSpecificExitCode = 0;
   return(ReportStatus());
}


inline BOOL CServiceStatus::ReportServiceSpecificError(DWORD dwError) {
   dwWin32ExitCode = ERROR_SERVICE_SPECIFIC_ERROR;
   dwServiceSpecificExitCode = dwError;
   return(ReportStatus());
}


///////////////////////////////////////////////////////////////////////////////


BOOL CServiceStatus::Initialize(PCTSTR szServiceName, 
   LPHANDLER_FUNCTION_EX pfnHandler, PVOID pvContext,
   BOOL fOwnProcess, BOOL fInteractWithDesktop) {

   if (!m_fDebug) {
      m_hss = RegisterServiceCtrlHandlerEx(szServiceName, pfnHandler, 
         pvContext);
//      chASSERT(m_hss != NULL);
   }

   dwServiceType = fOwnProcess 
      ? SERVICE_WIN32_OWN_PROCESS : SERVICE_WIN32_SHARE_PROCESS;

   if (fInteractWithDesktop) 
      dwServiceType |= SERVICE_INTERACTIVE_PROCESS;

   dwCurrentState = SERVICE_START_PENDING;
   dwControlsAccepted = 0; 
   dwWin32ExitCode = NO_ERROR;
   dwServiceSpecificExitCode = 0;
   dwCheckPoint = 0; 
   dwWaitHint = 2000;
   return(m_fDebug ? TRUE : (m_hss != NULL));
}


///////////////////////////////////////////////////////////////////////////////


BOOL CServiceStatus::SetUltimateState(DWORD dwUltimateState, 
   DWORD dwWaitHint) {

   DWORD dwPendingState = 0;  // An invalid state value
   switch (dwUltimateState) {
   case SERVICE_STOPPED: 
      dwPendingState = SERVICE_STOP_PENDING; 
      break;

   case SERVICE_RUNNING:
      dwPendingState = (dwCurrentState == SERVICE_PAUSED) 
         ? SERVICE_CONTINUE_PENDING : SERVICE_START_PENDING; 
      break;

   case SERVICE_PAUSED:
      dwPendingState = SERVICE_PAUSE_PENDING; 
      break;

   default:
//      chASSERT(dwPendingState != 0);   // Invalid parameter
      break;
   }

   // When creating a new ServiceMain thread, the system assumes 
   // dwCurrentState=SERVICE_START_PENDING, dwCheckPoint=0, dwWaitHint=2000
   // So, since we must always increment the checkpoint, let's start at 1
   dwCheckPoint = 1;
   this->dwWaitHint = dwWaitHint;

   // No error to report
   dwWin32ExitCode = NO_ERROR;
   dwServiceSpecificExitCode = 0;

   BOOL fOk = FALSE; // Assume failure
   if (dwPendingState != 0) {

      // If another pending operation hasn't completed, wait for it.
      m_gate.WaitToEnterGate();

      dwCurrentState = dwPendingState; // Update the state in the structure

      // If no wait hint, we reached the desired state
      fOk = (dwWaitHint != 0) ? ReportStatus() : ReportUltimateState();
   }

   return(fOk);
}


///////////////////////////////////////////////////////////////////////////////


BOOL CServiceStatus::AdvanceState(DWORD dwWaitHint, DWORD dwCheckPoint) {

   // A checkpoint of 0 is invalid, wo we'll increment the checkpoint by 1
   this->dwCheckPoint = 
      (dwCheckPoint == 0) ? this->dwCheckPoint + 1 : dwCheckPoint;

   this->dwWaitHint = dwWaitHint;

   // No error to report
   dwWin32ExitCode = NO_ERROR;
   dwServiceSpecificExitCode = 0;

   return(ReportStatus());
}


///////////////////////////////////////////////////////////////////////////////

   
BOOL CServiceStatus::ReportUltimateState() {

   DWORD dwUltimateState = 0;  // An invalid state value
   switch (dwCurrentState) {
   case SERVICE_START_PENDING:
   case SERVICE_CONTINUE_PENDING:
         dwUltimateState = SERVICE_RUNNING; 
         break;
   case SERVICE_STOP_PENDING:
         dwUltimateState = SERVICE_STOPPED; 
         break;
   case SERVICE_PAUSE_PENDING:
         dwUltimateState = SERVICE_PAUSED; 
         break;
   }
   dwCheckPoint = dwWaitHint = 0; // We reached the ultimate state

   // No error to report
   dwWin32ExitCode = NO_ERROR;
   dwServiceSpecificExitCode = 0;

   BOOL fOk = FALSE; // Assume failure

   if (dwUltimateState != 0) {
      dwCurrentState = dwUltimateState;   // Update the state in the structure
      fOk = ReportStatus();

      // Our state change is complete, allow a new state change
      m_gate.LiftGate();
   }

   return(fOk);
}


///////////////////////////////////////////////////////////////////////////////



//////////////////////////////// End of File //////////////////////////////////

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
www.成人网.com| 国产精品网站一区| 亚洲国产精品精华液2区45| 亚洲国产精品久久久久秋霞影院 | 精品少妇一区二区三区在线播放 | 国产免费观看久久| 亚洲成年人影院| 成人性色生活片| 日韩欧美国产综合一区| 亚洲精品国产精华液| 成人做爰69片免费看网站| 欧美电影免费观看完整版| 亚洲精品视频在线看| 国产**成人网毛片九色| 欧美成人国产一区二区| 婷婷综合五月天| 在线免费观看日本欧美| ㊣最新国产の精品bt伙计久久| 麻豆精品在线看| 在线播放视频一区| 亚洲伊人伊色伊影伊综合网 | 国产精品1区2区| 日韩视频在线你懂得| 亚洲成人动漫一区| 欧美日韩一区二区电影| 亚洲成av人片在线观看| 欧美性受xxxx黑人xyx| 一个色在线综合| 色激情天天射综合网| 亚洲伊人伊色伊影伊综合网| 色综合色综合色综合| 亚洲欧美激情小说另类| 99国产欧美另类久久久精品| 国产精品免费丝袜| 99精品久久免费看蜜臀剧情介绍| 久久精品视频在线看| 国产不卡在线视频| 国产欧美日韩另类视频免费观看| 国产成人h网站| 中文字幕一区三区| 91香蕉视频污在线| 亚洲最新视频在线观看| 欧美视频一区二区三区在线观看| 午夜精品一区在线观看| 在线综合+亚洲+欧美中文字幕| 日本vs亚洲vs韩国一区三区二区| 日韩一级二级三级精品视频| 精品中文字幕一区二区小辣椒| 精品999在线播放| 国产精品18久久久久久久久 | 欧美一区二区私人影院日本| 日韩精品国产欧美| 日韩欧美国产一区在线观看| 国产一区二区三区av电影| 国产日韩精品一区二区浪潮av| 国产a视频精品免费观看| 国产精品成人在线观看| 欧美日韩和欧美的一区二区| 久久国产三级精品| 国产精品美女久久久久久2018| 在线视频亚洲一区| 久久爱另类一区二区小说| 中文字幕欧美日本乱码一线二线| 91色|porny| 裸体一区二区三区| 国产精品久久久久久久久久免费看 | av一本久道久久综合久久鬼色| 亚洲精品中文字幕乱码三区| 欧美一区二区三区在线观看| 国产成人精品免费视频网站| 亚洲午夜精品在线| 久久女同精品一区二区| 日本电影亚洲天堂一区| 麻豆91精品视频| 亚洲激情欧美激情| 精品国偷自产国产一区| 91国模大尺度私拍在线视频| 久久国产夜色精品鲁鲁99| 亚洲欧美另类图片小说| 精品99999| 91精选在线观看| 成人app在线| 久久99久国产精品黄毛片色诱| 国产精品视频麻豆| 欧美一区二区三区白人| 91麻豆免费观看| 国产麻豆精品在线| 日韩av网站在线观看| 亚洲欧洲日产国码二区| 精品免费视频.| 欧美精品一卡二卡| 色猫猫国产区一区二在线视频| 精品一区二区三区在线播放| 亚洲一级不卡视频| 国产精品嫩草99a| 久久精品无码一区二区三区| 5月丁香婷婷综合| 欧美在线你懂的| av激情综合网| 国产成人免费视频网站| 久久精品国产秦先生| 婷婷开心激情综合| 亚洲一区二区视频在线观看| 中文字幕色av一区二区三区| 国产亚洲欧美在线| 26uuuu精品一区二区| 日韩一区二区三区在线| 91精品欧美一区二区三区综合在| 在线观看亚洲a| 日本精品裸体写真集在线观看| av影院午夜一区| av不卡在线观看| 成人网男人的天堂| 99久久精品免费| 在线观看日韩毛片| 欧洲av在线精品| 欧美三级三级三级爽爽爽| 色www精品视频在线观看| 色综合婷婷久久| 欧美专区日韩专区| 欧美午夜一区二区三区免费大片| 在线观看国产日韩| 欧美日韩一二三| 91精品国产综合久久精品图片 | 国产精品剧情在线亚洲| 国产精品女主播av| 自拍av一区二区三区| 一区二区三区四区五区视频在线观看 | 国产亚洲污的网站| 亚洲国产电影在线观看| 亚洲视频在线一区二区| 亚洲最快最全在线视频| 日韩成人免费在线| 六月婷婷色综合| 国产v综合v亚洲欧| 色av成人天堂桃色av| 欧美一区二区视频在线观看| 日韩欧美国产系列| 欧美韩国日本不卡| 亚洲国产cao| 国产一区二区三区在线观看免费视频| 国产一区二区三区免费播放 | 欧美三级视频在线观看| 欧美电影免费观看高清完整版在 | 亚洲国产精品av| 一区二区三区欧美视频| 青青青伊人色综合久久| 丰满白嫩尤物一区二区| 欧洲中文字幕精品| 欧美成人女星排名| 亚洲人成网站在线| av不卡在线播放| 欧美日韩国产一级| 久久精品一区八戒影视| 一区二区三区av电影| 亚洲va天堂va国产va久| 日本亚洲天堂网| 丰满放荡岳乱妇91ww| 欧美日韩免费视频| 国产精品欧美久久久久无广告| 亚洲成人激情社区| 成人av资源在线观看| 欧美日韩一区二区三区不卡| 国产精品天美传媒| 日韩中文字幕麻豆| 色综合中文字幕国产| 欧美一卡二卡在线| 亚洲视频一区二区在线| 国产一区二区三区| 91精品国产福利在线观看| 国产精品理论片| 久久69国产一区二区蜜臀| 欧美日韩精品系列| 最新国产成人在线观看| 久久成人免费电影| 91精品国产乱| 亚洲一区二区三区四区的 | 视频一区欧美日韩| 播五月开心婷婷综合| 久久一二三国产| 日韩黄色小视频| 欧美日韩色综合| 亚洲久本草在线中文字幕| 成人午夜视频在线| 国产人妖乱国产精品人妖| 蜜桃一区二区三区在线观看| 欧美三级电影精品| 亚洲国产精品久久人人爱蜜臀| 99这里都是精品| 国产精品久久毛片| 99在线热播精品免费| 国产精品视频免费看| 成人av电影在线播放| 国产精品成人一区二区艾草 | 亚洲成精国产精品女| 欧美天天综合网| 亚洲自拍与偷拍| 欧美色精品在线视频| 亚洲va中文字幕| 91精品国产免费|