日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

操作 NT 服务

發(fā)布時間:2025/3/15 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 操作 NT 服务 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

操作 NT 服務

操作 NT 服務:
OpenSCManager?? 打開目標計算機上的“服務控制管理器”-SCM,返回指向該管理器的指針。
OpenService???? 打開服務,返回指向該服務的指針。
StartService??? 傳遞一個字符串數(shù)組,并將其作為參數(shù),啟動一個現(xiàn)有的服務。
ControlService? 控制一個已經(jīng)打開的服務。
CreateService?? 創(chuàng)建一個新服務
DeleteService?? 刪除一個已有的服務
StartServiceCtrlDispatcher?? 啟動服務
ChangeServiceConfig

Windows服務是其實一種特殊的二進制可執(zhí)行文件,后綴名一般為EXE,之所以說它特殊,因為它具有同Windows

NT/2K系統(tǒng)的服務控制管理器(SCM: Service Control Manager)通信。
??? 服務控制管理器通過維護數(shù)據(jù)庫對已經(jīng)安裝到系統(tǒng)的所有服務和驅(qū)動程序進行統(tǒng)一而安全的控制和管理。服務

控制管理器是一個遠程進程調(diào)用(RPC)服務器,在系統(tǒng)導入時自動啟動。
??? 一個簡單的服務程序至少包括一些幾個部分:
?? 1. Win32/控制臺應用主程序;
?? 2. 一個服務主程序,作為服務的導入點;
?? 3. 一個服務控制處理器,就是同服務控制管理器SCM通信的函數(shù);
?? 4. 一個服務安裝/反安裝程序用于將一個EXE文件注冊為一個服務。
?? 下面我們針對上述幾個部分分別介紹怎樣構(gòu)造一個Windows服務。

控制臺應用主程序

在Win32下為WinMain函數(shù),在控制臺下為main函數(shù),是服務的主程序。下面是服務主程序中至少要包含的語句。

#include "Winsvc.h"??????????????? //服務頭文件

main()
{
??? ......
??? SERVICE_TABLE_ENTRY Table[]=,};?
??? StartServiceCtrlDispatcher(Table);
??????? ......
}

當然這是一個非常簡單的主程序了。這里main只做了一件事情,就是填寫SERVICE_TABLE_ENTRY結(jié)構(gòu)數(shù)組Table。

Table[0][0]是服務的名字(可以是您喜歡的任意字符串,此處我用的是gkeyService);Table[0][1]指定了服務主程

序的名字,實際上這是一個指向服務主程序的函數(shù)指針,它也可以用您喜歡的函數(shù)名字(我用的是gkeyServiceMain)

。現(xiàn)在通過調(diào)用參數(shù)為SERVICE_TABLE_ENTRY結(jié)構(gòu)數(shù)組的函數(shù)StartServiceCtrlDispatcher()開始啟動服務解析。注

意這個函數(shù)的參數(shù)必須要符合一定的格式,Table[1][0]和Table[1][1]必須是NULL,就是說到了數(shù)組的結(jié)尾。當然

并非必須這樣,如果需要在這個執(zhí)行程序中運行多個服務,可以在這個數(shù)組列表中加入更多的入口,構(gòu)成多對服務

名稱和服務中程序,自然您需要在以下的步驟中需要為每個服務構(gòu)造相應的完成函數(shù)。

服務主程序

典型的服務主程序的聲明如下:

void WINAPI gkeyServiceMain( DWORD argc, LPTSTR *argv )

??? 在gkeyServiceMain函數(shù)中,需要實現(xiàn)的主要步驟包括:
1. 用合適的值填寫SERVICE_STATUS結(jié)構(gòu)來完成同服務控制管理器SCM的通信;
2. 在列表中注冊前面所說的服務控制處理函數(shù);
3. 調(diào)用實際的處理函數(shù)。

??? 為了完成上述功能,需要使用兩個全局變量:
SERVICE_STATUS???????? m_ServiceStatus;
SERVICE_STATUS_HANDLE???? m_ServiceStatusHandle;

??? 服務主程序gkeyServiceMain()能夠象通常的c/c++里的main()函數(shù)一樣接受命令行參數(shù),并且接受參數(shù)的方式

也完全一樣。第一個參數(shù)argc包含了傳遞給服務的參數(shù)個數(shù),同c/c++的main()一樣至少有一個參數(shù)就是服務應用本

身。第二個參數(shù)是一個字符指針數(shù)組的指針。同main()函數(shù)一樣,數(shù)組的第一個值總是指向服務的名字。
??? 使用SERVICE_STATUS數(shù)據(jù)結(jié)構(gòu)記錄服務的當前狀態(tài),并將狀態(tài)及時通告給服務控制管理器SCM,使用一個API函

數(shù)SetServiceStatus()來實現(xiàn)這一目標。SERVICE_STATUS的數(shù)據(jù)成結(jié)構(gòu)員如下:

dwServiceType??????? = SERVICE_WIN32;????????
dwCurrentState?????? = SERVICE_START_PENDING;???? //試圖啟動(初始狀態(tài))
dwControlsAccepted?? = SERVICE_ACCEPT_STOP;???? //僅接收服務控制程序的啟動/停止,服務控制程序通常在

Windows NT下的控制面板或者Windows 2K下的管理工具,我們也可以設置服務接受暫停/繼續(xù)功能。

??? 在服務主程序gkeyServiceMain()的開始應該設置SERVICE_STATUS的狀態(tài)字段dwCurrentState為

SERVICE_START_PENDING,通知SCM服務處于運行狀態(tài)。如果發(fā)生錯誤,應該發(fā)送SERVICE_STOPPED通知服務控制管理

器SCM。缺省狀態(tài)下,服務控制管理器SCM將監(jiān)視服務的活動,如果2分鐘之類沒有發(fā)現(xiàn)進程活動就殺死這個服務。

??? 使用API函數(shù)RegisterServiceCtrlHandler()設置服務控制管理器SCM的服務控制處理函數(shù),這個函數(shù)需要兩個

參數(shù),一個是服務名稱字符串,一個是服務控制處理函數(shù)句柄。

??? 現(xiàn)在要設置dwCurrentState為SERVICE_RUNNING用以通知服務已經(jīng)啟動。

服務控制處理函數(shù)

??? 服務控制管理器SCM使用服務控制處理函數(shù)和服務程序進行通信來了解服務的諸如啟動、停止、暫停或繼續(xù)等用

戶指令,它主要包含一個switch語句來處理每種情況,調(diào)用相應的步驟來啟動、急需、清除和中斷進程。函數(shù)收到

一個象SERVICE_CONTROL_PAUSE, SERVICE_CONTROL_CONTINUE, SERVICE_CONTROL_STOP,

SERVICE_CONTROL_INTERROGATE等操作碼,就需要為每種指令提供相應的處理步驟。

安裝/反安裝

??? 要安裝一個服務,在系統(tǒng)注冊時需要生成一些入口,通常使用Windows有現(xiàn)成的API而不是注冊函數(shù)來完成這些

步驟,這些函數(shù)有CreateService()和DeleteService()。為了安裝服務,首先使用

OpenSCManager(NULL,NULL,SC_MANAGER_ALL_ACCESS)打開服務控制管理器SCM。然后調(diào)用CreateService()來建立服

務,給出服務的名字,如果要刪除指定的服務,也將需要使用這個名字刪除。

總結(jié)

以上是生活随笔為你收集整理的操作 NT 服务的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 免费的av网站 | 医生强烈淫药h调教小说视频 | 国产奶水涨喷在线播放 | 老外黄色一级片 | 久久久天天 | 日韩av手机在线观看 | 蜜臀99久久精品久久久久小说 | 久久精品国产亚洲av麻豆蜜芽 | 182tv午夜| 日韩中文在线视频 | 视频一区二区在线观看 | 亚洲国产精品久久久久久 | 一区二区三区免费高清视频 | 91久久久久久久久久久久久 | 裸体喂奶一级裸片 | 亚洲视频五区 | 亚洲高清在线看 | 小优视频污 | 老狼影院伦理片 | 草草在线视频 | 国产精品自产拍高潮在线观看 | 伊人色影院 | 久草美女 | 视频一区三区 | 亚洲免费在线 | 欧美麻豆 | 视频一区 中文字幕 | 给我免费观看片在线电影的 | 国产精品久久久久久亚洲调教 | 亚洲精品在线免费观看视频 | 性中国古装videossex | 日韩欧美资源 | 日批视频免费 | 在线观看 中文字幕 | 国产精品成人免费精品自在线观看 | 免费一区二区三区四区 | 亚洲乱色熟女一区二区三区 | 九九热在线视频播放 | 免费看的黄色 | 波多野结衣二区三区 | 成人欧美在线观看 | 久久久久久久人妻无码中文字幕爆 | 日本免费一二三区 | 成人国产一区二区三区精品麻豆 | 美女100%无挡| 日韩久久精品一区二区 | 精品亚洲一区二区三区四区五区高 | 国产日日夜夜 | 老司机av导航 | 三级网站在线 | 青青草原伊人网 | 激情久久免费视频 | 成人黄色片免费 | 久久咪咪 | 粉嫩av一区二区三区免费观看 | 亚洲av女人18毛片水真多 | 三级av网 | 欧美另类一区二区 | 中文字幕在线高清 | 毛片2| 日本欧美www| 亚洲精品成a人在线观看 | www.欧美一区二区三区 | 色综合色综合网色综合 | av优选在线观看 | 精品国产一区一区二区三亚瑟 | 激情欧美一区 | 91精品福利| 久热中文字幕在线 | 午夜资源| 五色天婷婷 | 美女免费福利视频 | 国产精品 欧美精品 | 成人在线免费网站 | 成人开心网 | 日日骚av | 国产精品欧美一区二区 | 亚洲国产中文在线 | 在线观看中文字幕一区二区 | 精品3p | 国产精品 欧美 日韩 | 麻豆av一区二区三区久久 | 日韩久久精品一区二区 | 国产精品第一区 | 国产女人18水真多18精品一级做 | 九一在线视频 | www..com国产 | 国产精品视频在线播放 | www.成人免费 | 暖暖av在线| 日韩中文视频 | 女av在线 | 亚洲黄色免费视频 | 朝桐光在线观看 | 日本亚洲色大成网站www久久 | 久操热久操 | 黄色www视频| 女同动漫免费观看高清完整版在线观看 | 国内爆初菊对白视频 |