当前位置: 首页 > news >正文

如何快速新建一个网站重庆建设工程信息网官网成绩

如何快速新建一个网站,重庆建设工程信息网官网成绩,网站分站代理加盟,通州网站开发公司驱动程序加载工具有许多#xff0c;最常用的当属KmdManager工具#xff0c;如果驱动程序需要对外发布那我们必须自己编写实现一个驱动加载工具#xff0c;当需要使用驱动时可以拉起自己的驱动#xff0c;如下将实现一个简单的驱动加载工具#xff0c;该工具可以实现基本的…驱动程序加载工具有许多最常用的当属KmdManager工具如果驱动程序需要对外发布那我们必须自己编写实现一个驱动加载工具当需要使用驱动时可以拉起自己的驱动如下将实现一个简单的驱动加载工具该工具可以实现基本的安装加载关闭卸载等操作日常使用完全没问题。 installDvr 驱动安装 #include iostream #include Windows.husing namespace std;// 安装驱动 BOOL installDvr(CONST WCHAR drvPath[50], CONST WCHAR serviceName[20]) {// 打开服务控制管理器数据库SC_HANDLE schSCManager OpenSCManager(NULL, // 目标计算机的名称,NULL连接本地计算机上的服务控制管理器NULL, // 服务控制管理器数据库的名称NULL打开 SERVICES_ACTIVE_DATABASE 数据库SC_MANAGER_ALL_ACCESS // 所有权限);if (schSCManager NULL){CloseServiceHandle(schSCManager);return FALSE;}// 创建服务对象添加至服务控制管理器数据库SC_HANDLE schService CreateService(schSCManager, // 服务控件管理器数据库的句柄serviceName, // 要安装的服务的名称serviceName, // 用户界面程序用来标识服务的显示名称SERVICE_ALL_ACCESS, // 对服务的访问权限所有全权限SERVICE_KERNEL_DRIVER, // 服务类型驱动服务SERVICE_DEMAND_START, // 服务启动选项进程调用 StartService 时启动SERVICE_ERROR_IGNORE, // 如果无法启动忽略错误继续运行drvPath, // 驱动文件绝对路径如果包含空格需要多加双引号NULL, // 服务所属的负载订购组服务不属于某个组NULL, // 接收订购组唯一标记值不接收NULL, // 服务加载顺序数组服务没有依赖项NULL, // 运行服务的账户名使用 LocalSystem 账户NULL // LocalSystem 账户密码);if (schService NULL){CloseServiceHandle(schService);CloseServiceHandle(schSCManager);return FALSE;}CloseServiceHandle(schService);CloseServiceHandle(schSCManager);return TRUE; }int main(int argc, char *argv[]) {if (installDvr(LC:\\WinDDK.sys, Lservice) TRUE){cout 驱动已安装 endl;}getchar();return 0; }startDvr 启动驱动 #include iostream #include Windows.husing namespace std;// 启动服务 BOOL startDvr(CONST WCHAR serviceName[20]) {// 打开服务控制管理器数据库SC_HANDLE schSCManager OpenSCManager(NULL, // 目标计算机的名称,NULL连接本地计算机上的服务控制管理器NULL, // 服务控制管理器数据库的名称NULL打开 SERVICES_ACTIVE_DATABASE 数据库SC_MANAGER_ALL_ACCESS // 所有权限);if (schSCManager NULL){CloseServiceHandle(schSCManager);return FALSE;}// 打开服务SC_HANDLE hs OpenService(schSCManager, // 服务控件管理器数据库的句柄serviceName, // 要打开的服务名SERVICE_ALL_ACCESS // 服务访问权限所有权限);if (hs NULL){CloseServiceHandle(hs);CloseServiceHandle(schSCManager);return FALSE;}if (StartService(hs, 0, 0) 0){CloseServiceHandle(hs);CloseServiceHandle(schSCManager);return FALSE;}CloseServiceHandle(hs);CloseServiceHandle(schSCManager);return TRUE; }int main(int argc, char *argv[]) {if (startDvr(Lservice) TRUE){cout 驱动服务 endl;}getchar();return 0; }stopDvr 停止驱动 #include iostream #include Windows.husing namespace std;// 停止服务 BOOL stopDvr(CONST WCHAR serviceName[20]) {// 打开服务控制管理器数据库SC_HANDLE schSCManager OpenSCManager(NULL, // 目标计算机的名称,NULL连接本地计算机上的服务控制管理器NULL, // 服务控制管理器数据库的名称NULL打开 SERVICES_ACTIVE_DATABASE 数据库SC_MANAGER_ALL_ACCESS // 所有权限);if (schSCManager NULL){CloseServiceHandle(schSCManager);return FALSE;}// 打开服务SC_HANDLE hs OpenService(schSCManager, // 服务控件管理器数据库的句柄serviceName, // 要打开的服务名SERVICE_ALL_ACCESS // 服务访问权限所有权限);if (hs NULL){CloseServiceHandle(hs);CloseServiceHandle(schSCManager);return FALSE;}// 如果服务正在运行SERVICE_STATUS status;if (QueryServiceStatus(hs, status) 0){CloseServiceHandle(hs);CloseServiceHandle(schSCManager);return FALSE;}if (status.dwCurrentState ! SERVICE_STOPPED status.dwCurrentState ! SERVICE_STOP_PENDING){// 发送关闭服务请求if (ControlService(hs, // 服务句柄SERVICE_CONTROL_STOP, // 控制码通知服务应该停止status // 接收最新的服务状态信息) 0) {CloseServiceHandle(hs);CloseServiceHandle(schSCManager);return FALSE;}// 判断超时INT timeOut 0;while (status.dwCurrentState ! SERVICE_STOPPED){timeOut;QueryServiceStatus(hs, status);Sleep(50);}if (timeOut 80){CloseServiceHandle(hs);CloseServiceHandle(schSCManager);return FALSE;}}CloseServiceHandle(hs);CloseServiceHandle(schSCManager);return TRUE; }int main(int argc, char *argv[]) {if (stopDvr(Lservice) TRUE){cout 停止驱动服务 endl;}getchar();return 0; }unloadDvr 卸载驱动 #include iostream #include Windows.husing namespace std;// 卸载驱动 BOOL unloadDvr(CONST WCHAR serviceName[20]) {// 打开服务控制管理器数据库SC_HANDLE schSCManager OpenSCManager(NULL, // 目标计算机的名称,NULL连接本地计算机上的服务控制管理器NULL, // 服务控制管理器数据库的名称NULL打开 SERVICES_ACTIVE_DATABASE 数据库SC_MANAGER_ALL_ACCESS // 所有权限);if (schSCManager NULL){CloseServiceHandle(schSCManager);return FALSE;}// 打开服务SC_HANDLE hs OpenService(schSCManager, // 服务控件管理器数据库的句柄serviceName, // 要打开的服务名SERVICE_ALL_ACCESS // 服务访问权限所有权限);if (hs NULL){CloseServiceHandle(hs);CloseServiceHandle(schSCManager);return FALSE;}// 删除服务if (DeleteService(hs) 0){CloseServiceHandle(hs);CloseServiceHandle(schSCManager);return FALSE;}CloseServiceHandle(hs);CloseServiceHandle(schSCManager);return TRUE; }int main(int argc, char *argv[]) {if (unloadDvr(Lservice) TRUE){cout 卸载驱动服务 endl;}getchar();return 0; }封装cDrvCtrl通信类 #define _CRT_SECURE_NO_WARNINGS #include iostream #include Windows.h#pragma comment(lib,user32.lib) #pragma comment(lib,advapi32.lib)// ------------------------------------------------------------------------------ // 驱动控制类 // ------------------------------------------------------------------------------class cDrvCtrl { public:cDrvCtrl(){m_pSysPath NULL;m_pServiceName NULL;m_pDisplayName NULL;m_hSCManager NULL;m_hService NULL;m_hDriver INVALID_HANDLE_VALUE;}~cDrvCtrl(){CloseServiceHandle(m_hService);CloseServiceHandle(m_hSCManager);CloseHandle(m_hDriver);}// 安装驱动BOOL Install(PCHAR pSysPath, PCHAR pServiceName, PCHAR pDisplayName){m_pSysPath pSysPath;m_pServiceName pServiceName;m_pDisplayName pDisplayName;m_hSCManager OpenSCManagerA(NULL, NULL, SC_MANAGER_ALL_ACCESS);if (NULL m_hSCManager){m_dwLastError GetLastError();return FALSE;}m_hService CreateServiceA(m_hSCManager, m_pServiceName, m_pDisplayName,SERVICE_ALL_ACCESS, SERVICE_KERNEL_DRIVER, SERVICE_DEMAND_START, SERVICE_ERROR_NORMAL,m_pSysPath, NULL, NULL, NULL, NULL, NULL);if (NULL m_hService){m_dwLastError GetLastError();if (ERROR_SERVICE_EXISTS m_dwLastError){m_hService OpenServiceA(m_hSCManager, m_pServiceName, SERVICE_ALL_ACCESS);if (NULL m_hService){CloseServiceHandle(m_hSCManager);return FALSE;}}else{CloseServiceHandle(m_hSCManager);return FALSE;}}return TRUE;}// 启动驱动BOOL Start(){if (!StartServiceA(m_hService, NULL, NULL)){m_dwLastError GetLastError();return FALSE;}return TRUE;}// 关闭驱动BOOL Stop(){SERVICE_STATUS ss;GetSvcHandle(m_pServiceName);if (!ControlService(m_hService, SERVICE_CONTROL_STOP, ss)){m_dwLastError GetLastError();return FALSE;}return TRUE;}// 移除驱动BOOL Remove(){GetSvcHandle(m_pServiceName);if (!DeleteService(m_hService)){m_dwLastError GetLastError();return FALSE;}return TRUE;}// 打开驱动BOOL Open(PCHAR pLinkName){if (m_hDriver ! INVALID_HANDLE_VALUE)return TRUE;m_hDriver CreateFileA(pLinkName, GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);if (m_hDriver ! INVALID_HANDLE_VALUE)return TRUE;elsereturn FALSE;}// 安装并运行驱动VOID InstallAndRun(){char szSysFile[MAX_PATH] { 0 };char szSvcLnkName[] LyInject;;GetAppPath(szSysFile);strcat(szSysFile, LyInject.sys);Install(szSysFile, szSvcLnkName, szSvcLnkName);Start();Open(\\\\.\\LyInject);}// 移除并关闭驱动VOID RemoveAndStop(){Stop();Remove();CloseHandle(m_hDriver);}// 发送控制信号BOOL IoControl(DWORD dwIoCode, PVOID InBuff, DWORD InBuffLen, PVOID OutBuff, DWORD OutBuffLen, DWORD *RealRetBytes){DWORD dw;BOOL b DeviceIoControl(m_hDriver, CTL_CODE_GEN(dwIoCode), InBuff, InBuffLen, OutBuff, OutBuffLen, dw, NULL);if (RealRetBytes)*RealRetBytes dw;return b;} private:// 获取服务句柄BOOL GetSvcHandle(PCHAR pServiceName){m_pServiceName pServiceName;m_hSCManager OpenSCManagerA(NULL, NULL, SC_MANAGER_ALL_ACCESS);if (NULL m_hSCManager){m_dwLastError GetLastError();return FALSE;}m_hService OpenServiceA(m_hSCManager, m_pServiceName, SERVICE_ALL_ACCESS);if (NULL m_hService){CloseServiceHandle(m_hSCManager);return FALSE;}else{return TRUE;}}// 获取控制信号对应字符串DWORD CTL_CODE_GEN(DWORD lngFunction){return (FILE_DEVICE_UNKNOWN * 65536) | (FILE_ANY_ACCESS * 16384) | (lngFunction * 4) | METHOD_BUFFERED;}// 获取完整路径void GetAppPath(char *szCurFile){GetModuleFileNameA(0, szCurFile, MAX_PATH);for (SIZE_T i strlen(szCurFile) - 1; i 0; i--){if (szCurFile[i] \\){szCurFile[i 1] \0;break;}}}public:DWORD m_dwLastError;PCHAR m_pSysPath;PCHAR m_pServiceName;PCHAR m_pDisplayName;HANDLE m_hDriver;SC_HANDLE m_hSCManager;SC_HANDLE m_hService; };int main(int argc, char *argv[]) {cDrvCtrl DriveControl;DriveControl.InstallAndRun();DriveControl.RemoveAndStop();system(pause);return 0; }文章出处https://www.cnblogs.com/LyShark/p/15019049.html 本博客所有文章除特别声明外均采用 BY-NC-SA 许可协议。转载请注明出处
http://www.dnsts.com.cn/news/14372.html

相关文章:

  • 公司备案 网站主办者名称印尼做网站的教学 中文
  • 自己做网站接入微信和支付宝网站开发者yotoon
  • 哪个网站推广做的好邹平网站设计
  • 加强网站内容建设的意见wap网站建设
  • 建设ca网站学软件技术可以从事什么工作
  • 生态农业网站模板linux下wordpress安装
  • 怎么在招聘网站做评估企业网站备案需要法人拍照吗
  • 支付网站建设费的会计分录中国几大网络推广公司
  • 嘉兴公司网站制作潍坊昌大建设集团有限公司网站
  • 合肥网站建设公宛城区网站推广
  • 网站优化搜索排名苏州市住房和城乡建设局信息网站
  • 厦门做网站优化哪家好怎么制作游戏视频教程
  • 做服务的网站起名哪些网站可以找到做跨境电商的公司
  • 养殖企业网站wordpress 后面密码忘记
  • 外贸网站关键词宁德市住房和城乡建设局
  • 2019网站建设有限公司wordpress 缩略图 api
  • 提交网站地图网站排名怎么做的
  • 巩义自助建站优化北京企业网站建站哪家好
  • 尤溪网站开发工信部域名备案查询官网
  • 网站菜单栏代码陕西住房与城乡建设厅网站
  • 求百度关键词搜索网站wordpress dirname
  • php+mysql网站开发全程实例.pdf海外 推广网站
  • 企业做网站都购买域名吗网站推广工具有
  • 做电子政务 网站电脑如何制作网页教程
  • 网站开发需要文章写的好吗自己做的视频网站上传电影
  • 淄博高端网站建设乐达如何做黑彩网站
  • 建设部网站投诉核查企业名单攀枝花建设工程有限责任公司网站
  • 河南省建设厅网网站首页临沧网站建设公司
  • 厦门人才网唯一官方网站登录入口网站开发属于什么会计科目
  • 高端建站模版wordpress怎么使用插件