内核驱动运行、调试
驱动的运行
由于Windows数字签名的原因,没有签名或者使用测试签名的都不能放到64位系统上运行。
两个解决办法。
一、将系统设置为调试模式
二、关闭系统的驱动签名校验。
服务的基本操作
服务管理器:管理系统上的所有服务,创建、注册、修改、启动服务。
所以我们编写程序的时候,首先要打开服务管理器。其API为:
SC_HANDLE WINAPI OpenSCManager(
LPCTSTR lpMachineName, //字符串常量,表示机器名字,传NULL就是本机器
LPCTSTR lpDatebaseName, //同,数据库的名字,NULL代表打开的是活动数据库
DWORD dwDesiredAccess //权限
);
权限一般有 SC_MANAGER_CREATE_SERVICE 创建服务
SC_MANAGER_ENUMERATE_SERVICE 枚举服务
SC_MANAGER_ALL_ACCESS 一切权限
函数的返回值是一个SC_HANDLE 为服务管理器的句柄
关闭句柄的函数
CloseServiceHandle(SC_HANDLE PARAM);
创建一个服务使用的函数
SC_HANDLE WINAPI CreateService(
SC_HANDLE hSCManager, //服务管理器句柄
LPCTSTR lpServiceName, //创建的服务名字,唯一性
LPCTSTR lpDisplayName, //服务的显示名字,不唯一
DWORD dwDesiredAccess, //服务的权限,见下方
DWORD dwServiceType, //创建何种类型的服务,见下方
DWORD DWStartType, //服务的启动方式
DWORD dwErrorControl, //错误控制
LPCTSTR lpBinaryPathName, //服务对应的可执行文件的全路径,也就是sys文件路径
LPCTSTR lpLoadOrderGroup, //服务所在分组的名字
LPDWORD lpdwTagId, //分组内该服务的启动顺序
LPCTSTR lpDependencies, //需要依赖其他服务名的列表
L