青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

yehao's Blog

后臺服務程序開發模式(二)

轉自http://www.7880.com/Info/Article-5a903440.html

2.服務入口點函數

 

服務入口點函數 service_main 首先調用系統函數 RegisterServiceCtrlHandler 注冊服務控制處理函數 service_ctrl,然后調用 ReportStatusToSCMgr 函數,它通過系統函數 SetServiceStatus 更新服務的狀態,然后調用特定的服務初始化入口函數 ServiceStart 完成具體的初始化工作。

 

 

//服務入口點函數

void ServiceStart(DWORD dwArgc,LPTSTR* lpszArgv);//具體服務的初始化入口函數
 
void  WINAPI  Service_Main(DWORD dwArgc, LPTSTR *lpszArgv)

{

     //注冊服務控制處理函數

     sshStatusHandle=RegisterServiceCtrlHandler(TEXT(SZSERVICENAME),Service_Ctrl);

     //如果注冊失敗

     if(!sshStatusHandle)

     {

         goto cleanup;

         return;

     }

     //初始化 SERVICE_STATUS 結構中的成員

     ssStatus.dwServiceType=SERVICE_WIN32_OWN_PROCESS;

     ssStatus.dwServiceSpecificExitCode=0;

     //更新服務狀態

     if(!ReportStatusToSCMgr(

         SERVICE_START_PENDING,//服務狀態,The service is starting.

         NO_ERROR,            //退出碼        

         3000))                   //等待時間

         goto cleanup;        //更新服務狀態失敗則轉向 cleanup

     ServiceStart(dwArgc,lpszArgv);

     return;

cleanup:

     //把服務狀態更新為 SERVICE_STOPPED,并退出。

     if(sshStatusHandle)

         (void)ReportStatusToSCMgr(SERVICE_STOPPED,dwErr,0);

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.控制處理程序函數

 

 

3.控制處理程序函數

函數 Service_Ctrl 是服務的控制處理程序函數,由主函數線程的控制分發程序引用。在處理控制請求碼時,應該在確定的時間間隔內更新服務狀態檢查點,避免發生服務不能響應的錯誤。

 

 

//控制處理程序函數

void WINAPI Service_Ctrl(DWORD dwCtrlCode)

{

     //處理控制請求碼

     switch(dwCtrlCode)

     {

         //先更新服務狀態為 SERVICDE_STOP_PENDING,再停止服務。

     case SERVICE_CONTROL_STOP:

         ReportStatusToSCMgr(SERVICE_STOP_PENDING,NO_ERROR,500);

         ServiceStop();     //由具體的服務程序實現

         return;

         //暫停服務

     case SERVICE_CONTROL_PAUSE:

         ReportStatusToSCMgr(SERVICE_STOP_PENDING,NO_ERROR,500);

         ServicePause();    //由具體的服務程序實現

         ssStatus.dwCurrentState=SERVICE_PAUSED;

         return;

         //繼續服務

     case SERVICE_CONTROL_CONTINUE:

         ReportStatusToSCMgr(SERVICE_STOP_PENDING,NO_ERROR,500);

         ServiceContinue(); //由具體的服務程序實現

         ssStatus.dwCurrentState=SERVICE_RUNNING;

         return;

         //更新服務狀態

     case SERVICE_CONTROL_INTERROGATE:

         break;

         //無效控制碼

     default:

         break;

     }

     ReportStatusToSCMgr(ssStatus.dwCurrentState,NO_ERROR,0);

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

 

除了系統定義的五種控制碼外(還有一種是:SERVICE_CONTROL_SHUTDOWN),用戶還可自定義控制碼,其取值范圍是128-255。用戶可以通過控制面板中的服務項向特定服務程序的控制處理函數發送控制碼,程序員可以調用系統函數 ControlService 直接向服務程序的控制處理函數發送控制碼。其函數原型如下:

 

BOOL ControlService(

  SC_HANDLE hService,

  DWORD dwControl,

  LPSERVICE_STATUS lpServiceStatus

);

hService :函數 OpenService or CreateService 返回的服務程序句柄。

dwControl :控制碼,不能是SERVICE_CONTROL_SHUTDOWN。

lpServiceStatus:返回最后收到的服務狀態信息。


posted on 2011-06-17 14:37 厚積薄發 閱讀(282) 評論(0)  編輯 收藏 引用 所屬分類: Windows編程

導航

<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

統計

常用鏈接

留言簿

隨筆分類

文章分類

文章檔案

搜索

最新評論

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            嫩草影视亚洲| 国产精品99一区二区| 亚洲国产高清视频| 久久精品成人欧美大片古装| 亚洲网在线观看| 99精品欧美一区二区蜜桃免费| 亚洲欧洲精品一区二区三区波多野1战4 | 亚洲精品1区2区| 亚洲国产欧美日韩| 日韩一区二区福利| 午夜精品久久久久久久白皮肤| 午夜视黄欧洲亚洲| 另类激情亚洲| 亚洲精品久久久久久久久久久久久| 亚洲六月丁香色婷婷综合久久| 一本色道久久88精品综合| 亚洲影院色无极综合| 欧美中文在线免费| 免费高清在线视频一区·| 欧美日韩免费看| 国产一区二区日韩精品| 亚洲高清电影| 香蕉亚洲视频| 欧美黄色大片网站| 99伊人成综合| 久久精品1区| 蜜臀av国产精品久久久久| 欧美视频一区二区三区| 伊人久久婷婷色综合98网| 在线亚洲自拍| 久久影院午夜论| 亚洲一区二区三区中文字幕| 欧美福利在线| 激情成人亚洲| 欧美一级淫片播放口| 亚洲二区免费| 久久久久久网| 国产精品一区二区黑丝| 性做久久久久久久久| 欧美不卡三区| 国内精品久久久| 亚洲一区二区三区久久| 欧美韩日视频| 久久九九免费| 欧美日韩亚洲三区| 亚洲国产一区视频| 久久天堂av综合合色| 亚洲精品久久久一区二区三区| 欧美日韩国产综合网| 黄色精品一二区| 午夜免费在线观看精品视频| 亚洲欧洲综合另类| 久久一区二区视频| 国产精品永久| 亚洲欧美久久久| 99re热这里只有精品免费视频| 久久久另类综合| 精品不卡在线| 免费人成网站在线观看欧美高清| 亚洲欧美国产高清va在线播| 国产精品国产三级国产aⅴ无密码| 亚洲精品欧美| 亚洲精品少妇30p| 欧美日韩久久不卡| 在线亚洲+欧美+日本专区| 最近中文字幕mv在线一区二区三区四区 | 亚洲一区精品电影| 亚洲电影在线免费观看| 女同性一区二区三区人了人一| 一区在线观看| 免费在线观看日韩欧美| 久久这里只有精品视频首页| 18成人免费观看视频| 欧美.日韩.国产.一区.二区| 久久香蕉国产线看观看av| 亚洲国产精品123| 亚洲国产精品va在线观看黑人| 欧美国产亚洲另类动漫| 日韩亚洲欧美在线观看| 亚洲毛片av在线| 欧美日韩亚洲在线| 欧美在线视频免费播放| 久久久久久久999精品视频| 亚洲春色另类小说| 亚洲精品你懂的| 欧美日韩亚洲国产一区| 欧美一区二区三区在| 久久久精品日韩| 99国内精品久久| 亚洲欧美另类国产| 亚洲国产精品久久久久婷婷884 | 亚洲精品乱码久久久久久按摩观 | 欧美一区午夜视频在线观看| 伊人久久大香线蕉综合热线| 亚洲精品永久免费| 国产美女精品一区二区三区| 裸体歌舞表演一区二区| 欧美精品一线| 久久久女女女女999久久| 免费观看成人鲁鲁鲁鲁鲁视频| 亚洲理伦在线| 久久久蜜桃精品| 欧美va亚洲va国产综合| 欧美日韩精品在线观看| 久久视频在线视频| 欧美日韩一区二区在线播放| 久久久欧美精品sm网站| 欧美日本二区| 老牛国产精品一区的观看方式| 欧美激情影院| 老司机aⅴ在线精品导航| 国产精品色在线| 亚洲人体大胆视频| 韩国女主播一区二区三区| 在线一区二区三区四区五区| 亚洲国产婷婷香蕉久久久久久99| 亚洲专区国产精品| 亚洲最黄网站| 免费欧美在线视频| 久久久激情视频| 国产精品久久99| 亚洲精品国产精品国自产观看浪潮| 狠狠色香婷婷久久亚洲精品| 中文久久精品| 亚洲网址在线| 欧美精品综合| 亚洲激情第一区| 激情国产一区| 欧美一级在线视频| 欧美一级精品大片| 欧美视频观看一区| 亚洲理论在线观看| 亚洲美女少妇无套啪啪呻吟| 免费观看久久久4p| 欧美黄色免费网站| 亚洲国产美国国产综合一区二区 | 欧美精品www| 欧美成年人网| 亚洲国产欧美久久| 欧美电影在线观看| 亚洲欧洲在线播放| 亚洲一区二区三区在线看| 欧美涩涩视频| 亚洲在线观看| 久久国产福利| 伊人久久噜噜噜躁狠狠躁| 噜噜噜躁狠狠躁狠狠精品视频| 欧美韩日一区二区| 一区二区三区四区五区在线| 欧美丝袜一区二区三区| 亚洲免费精品| 亚洲制服欧美中文字幕中文字幕| 欧美三区不卡| 亚洲欧美色一区| 久色婷婷小香蕉久久| 亚洲激情小视频| 欧美精品自拍偷拍动漫精品| 一区二区三区鲁丝不卡| 午夜精彩国产免费不卡不顿大片| 国产精品中文字幕欧美| 午夜久久福利| 欧美成人xxx| 国产精品99久久久久久久久| 国产精品免费一区二区三区在线观看 | 亚洲女人天堂av| 黄色精品一区| 欧美大片91| 99国产精品久久久久久久成人热 | 中文精品在线| 国产精品日韩一区| 亚洲欧美制服另类日韩| 美日韩精品免费观看视频| 日韩视频一区二区三区在线播放免费观看 | 国产乱码精品1区2区3区| 欧美一区二区精品在线| 欧美黄污视频| 亚洲欧美日韩精品久久奇米色影视| 国产精品亚洲人在线观看| 久久三级视频| 一区二区三区久久网| 欧美aⅴ99久久黑人专区| 亚洲伊人观看| 精品成人久久| 欧美午夜不卡在线观看免费 | 欧美成人三级在线| 亚洲一区免费看| 亚洲国产精品99久久久久久久久| 国产精品xxx在线观看www| 免费日韩成人| 久久av二区| 亚洲视频一二三| 91久久午夜| 久久婷婷国产麻豆91天堂| 一区二区三区日韩| 亚洲人成在线观看| 一区二区三区在线免费视频 | 国产一区二区三区的电影 | 亚洲精品在线二区| 狠狠色综合色区| 国产模特精品视频久久久久|