【原创】驱动加载之CreateService
SC_HANDLE WINAPI CreateService(_In_ SC_HANDLE hSCManager,_In_ LPCTSTR lpServiceName,_In_opt_ LPCTSTR lpDisplayName,_In_ DWORD dwDesiredAccess,_In_ DWORD dwServiceType,_In_ DWORD dwStartType,_In_ DWORD dwErrorControl,_In_opt_ LPCTSTR lpBinaryPathName,_In_opt_ LPCTSTR lpLoadOrderGroup,_Out_opt_ LPDWORD lpdwTagId,_In_opt_ LPCTSTR lpDependencies,_In_opt_ LPCTSTR lpServiceStartName,_In_opt_ LPCTSTR lpPassword);
| Value | Meaning |
|---|---|
|
Reserved. |
|
File system driver service. |
|
Driver service. |
|
Reserved. |
|
Service that runs in its own process. |
|
Service that shares a process with one or more other services. For more information, see Service Programs. |
| Value | Meaning |
|---|---|
|
The service can interact with the desktop. For more information, see Interactive Services. |
| Value | Meaning |
|---|---|
|
A service started automatically by the service control manager during system startup. For more information, see Automatically Starting Services. (在系统启动的时候,由SCM自动运行服务) |
|
A device driver started by the system loader. This value is valid only for driver services. (系统引导程序自动运行服务,只对driver services有效) |
|
A service started by the service control manager when a process calls the StartService function. For more information, see Starting Services on Demand. (当一个程序调用StartService函数时,SCM启动服务) |
|
A service that cannot be started. Attempts to start the service result in the error code ERROR_SERVICE_DISABLED. (一个不能启动的服务,尝试启动它时,会产生ERROR_SERVICE_DISABLED) |
|
A device driver started by the IoInitSystem function. This value is valid only for driver services. (一个由 IoInitSystem函数启动的服务) |
| Value | Meaning |
|---|---|
|
The startup program logs the error in the event log, if possible. If the last-known-good configuration is being started, the startup operation fails. Otherwise, the system is restarted with the last-known good configuration. |
|
The startup program ignores the error and continues the startup operation. |
|
The startup program logs the error in the event log but continues the startup operation. |
|
The startup program logs the error in the event log. If the last-known-good configuration is being started, the startup operation continues. Otherwise, the system is restarted with the last-known-good configuration. |
|
返回值
|
描述
|
|
ERROR_ACCESS_DENIED
|
提供的hSCManager参数没有SC_MANAGER_CREATE_SERVICE权限。
|
|
ERROR_CIRCULAR_DEPENDENCY
|
存在循环嵌套的服务依赖关系。
|
|
ERROR_DUPLICATE_SERVICE_NAME
|
显示名称已在SCM中被其他服务注册为服务名称或显示名称。
|
|
ERROR_INVALID_HANDLE
|
提供的hSCManager参数无效。
|
|
ERROR_INVALID_NAME
|
提供的服务名称无效。
|
|
ERROR_INVALID_PARAMETER
|
其他参数无效。
|
|
ERROR_INVALID_SERVICE_ACCOUNT
|
由lpServiceStartName参数指定的用户名不存在。
|
|
ERROR_SERVICE_EXISTS
|
已存在完全相同的服务。
|
|
值
|
描述
|
|
DependOnGroup
|
由lpDependencies参数指定的依赖性服务群组,包含加载顺序。
|
|
DependOnService
|
由lpDependencies参数指定的依赖性服务。
|
|
Description
|
由ChangeServiceConfig2函数写入的描述信息。
|
|
DisplayName
|
由lpDisplayName参数指定的服务显示名称。
|
|
ErrorControl
|
由dwErrorControl参数指定的纠错方案。
|
|
FailureActions
|
由ChangeServiceConfig2函数写入的异常信息。
|
|
Group
|
由lpLoadOrderGroup参数指定的服务群组,包含加载顺序。
|
|
ImagePath
|
由lpBinaryPathName参数指定的服务程序文件位置。
|
|
ObjectName
|
由lpServiceStartName参数指定的名称。
|
|
Start
|
由dwStartType参数指定的服务启动时间。
|
|
Tag
|
由lpdwTagId参数指定的识别信息。
|
|
Type
|
由dwServiceType参数指定的服务类型。
|
本文链接:http://www.cnblogs.com/cposture/p/4717479.html
【原创】驱动加载之CreateService的更多相关文章
- 老调重弹:JDBC系列之<驱动加载原理全面解析) ----转
最近在研究Mybatis框架,由于该框架基于JDBC,想要很好地理解和学习Mybatis,必须要对JDBC有较深入的了解.所以便把JDBC 这个东东翻出来,好好总结一番,作为自己的笔记,也是给读者 ...
- (DT系列四)驱动加载中, 如何取得device tree中的属性
本文以At91rm9200平台为例,从源码实现的角度来分析驱动加载时,Device tree的属性是如何取得的.一:系统级初始化DT_MACHINE_START 主要是定义"struct m ...
- 【转】(DT系列四)驱动加载中, 如何取得device tree中的属性
原文网址:http://www.cnblogs.com/biglucky/p/4057488.html 本文以At91rm9200平台为例,从源码实现的角度来分析驱动加载时,Device tree的属 ...
- linux设备和驱动加载的先后顺序
点击打开链接 Linux驱动先注册总线,总线上可以先挂device,也可以先挂driver,那么究竟怎么控制先后的顺序呢. Linux系统使用两种方式去加载系统中的模块:动态和静态. 静态加载:将所有 ...
- 如何调整Linux内核启动中的驱动初始化顺序-驱动加载优先级
Linux内核为不同驱动的加载顺序对应不同的优先级,定义了一些宏: include\linux\init.h #define pure_initcall(fn) __define_initcall(& ...
- 关于Eclipse在servlet中连接数据库时出现驱动加载失败的解决
问题:在队友发来的项目中想将他获取到的数据通过数据库储存,出现驱动加载失败问题 解决:首先百度了下相关情况,大多数都是说下载mysql-connector-java-5.1.39-bin.jar包,然 ...
- 【ESXI6.0】 ESXI6.0安装时无法安装网卡驱动的解决方法及将网卡驱动加载进ISO
http://blog.163.com/xifanliang@yeah/blog/static/115078488201571584321787/ 若安装时提示如下图所示 之后安装无法完成,会提示没有 ...
- Windows 驱动加载程序代码
#include <windows.h> #include <winsvc.h> #include <conio.h> #include <stdio.h&g ...
- jdbc数据库连接过程及驱动加载与设计模式详解
首先要导入JDBC的jar包:接下来,代码:Class.forName(xxx.xx.xx)返回的是一个类 Class.forName(xxx.xx.xx)的作用是要求JVM查找并加载指定的类, 也就 ...
随机推荐
- 用python turtle画玫瑰
1.turtle 库 2.画玫瑰的代码: import turtle turtle.penup() turtle.left() turtle.fd() turtle.pendown() turtle. ...
- Codeforces 863 简要题解
文章目录 A题 B题 C题 D题 E题 F题 G题 传送门 简要题解?因为最后一题太毒不想写了所以其实是部分题解... A题 传送门 题意简述:给你一个数,问你能不能通过加前导000使其成为一个回文数 ...
- Unity自动切割动画
最近在开发项目时,需要处理大量的动画,于是就网上查找资料,然后写了这么编辑器工具: 就是在模型导入时,根据配置文件自动切割动画. 首先我们需要封装两个类:一个模型类和一个动画类 public clas ...
- Go学习之旅
备忘这个 官方文档 https://go-zh.org/doc/ Go指南 https://tour.go-zh.org/welcome/1 Go语言圣经 https://yar999.gitbook ...
- _ZNote_Qt_QDialog_修改button名称
#include <QPushButton> ui->buttonBox->button(QDialogButtonBox::Ok)->setText("Run ...
- Python成绩雷达图
代码 import numpy as np import matplotlib import matplotlib.pyplot as plt matplotlib.rcParams['font.fa ...
- 安装kylin的艰难历程
前言:暑假里老师布置的任务没有完成,来到学校后马不停蹄的安装kylin,结果一路艰难险阻,搞了快两个星期都没有弄好....现在止步于hive阶段卡死...仅将之前的步骤记录下来以便重新安装时更加顺利. ...
- gitlab导入现在git项目
确保管理员所在机器的ssh 公钥已经保存在gitlab网站上. 这样管理员可以在自己的机器上和gitlab系统交互. 现在在管理员自己的机器上,进入项目目录(项目目录拷贝自git server,目录后 ...
- Visual Studio 2017 集成Crystal Report为ASP.NET MVC呈现报表
最近项目需要实现报表功能,平衡各方面的因素,还是使用Crystal Report(水晶报表) 下载较新版本: http://downloads.businessobjects.com/akdlm/cr ...
- JVM指令集
指令集,其实就是一系列指令的集合.例如我们需要给一个局部变量赋予1这个值,即这个动作:int a = 1; 在我们看来,这很简单,但对于机器来说需要很多个动作.所以Java虚拟机指令集就是将这些常用的 ...