Home  >  Article  >  Database  >  驱动学习笔记2-用程序加载NT驱动程序

驱动学习笔记2-用程序加载NT驱动程序

WBOY
WBOYOriginal
2016-06-07 15:30:251008browse

NT 驱动 程序 的加载: 1:为NT 驱动 创建新的服务. 2:开启此项服务 3:关闭此项服务 4:删除NT 驱动 创建的服务 (1)打开SCM管理器 SC_HANDLE WINAPI OpenSCManager( __in LPCTSTR lpMachineName,//计算机名称.NULL或者空表示本机 __in LPCTSTR lpDatabaseName,/

NT驱动程序的加载:
1:为NT驱动创建新的服务.
2:开启此项服务
3:关闭此项服务
4:删除NT驱动创建的服务
(1)打开SCM管理器
SC_HANDLE WINAPI OpenSCManager(
  __in          LPCTSTR lpMachineName,//计算机名称.NULL或者空表示本机
  __in          LPCTSTR lpDatabaseName,//SCM数据库名称.NULL表示使用缺省数据库
  __in          DWORD dwDesiredAccess //使用权限.一般为SC_MANAGER_ALL_ACCESS
);
成功返回SCM管理器句柄.否则返回NULL
(2)创建服务
SC_HANDLE WINAPI CreateService(
  __in          SC_HANDLE hSCManager,//OpenSCManager打开的句柄
  __in          LPCTSTR lpServiceName,//服务名称.SCM管理器中看到的服务名称
  __in          LPCTSTR lpDisplayName,
  __in          DWORD dwDesiredAccess,//打开权限.一般为SERVICE_ALL_ACCESS
  __in          DWORD dwServiceType, //服务类型(文件系统驱动/普通驱动程序/驱动自加载/)
  __in          DWORD dwStartType,  //启动类型
  __in          DWORD dwErrorControl, //错误控制码
  __in          LPCTSTR lpBinaryPathName,//服务程序或者驱动程序的路径
  __in          LPCTSTR lpLoadOrderGroup,//服务属于哪个用户组
  __out         LPDWORD lpdwTagId,
  __in          LPCTSTR lpDependencies, //所依赖的服务的名称
  __in          LPCTSTR lpServiceStartName, //用户帐户名称
  __in          LPCTSTR lpPassword   //用户口令
);
(3)打开服务
SC_HANDLE WINAPI OpenService(
  __in          SC_HANDLE hSCManager,  //SCM管理器句柄
  __in          LPCTSTR lpServiceName,  //服务名称
  __in          DWORD dwDesiredAccess  //访问权限.一般为SC_MANAGER_ALL_ACCESS
);
(4)控制服务
BOOL WINAPI ControlService(
  __in          SC_HANDLE hService,   //服务句柄
  __in          DWORD dwControl,   //控制码
  __out         LPSERVICE_STATUS lpServiceStatus //指向一个SERVICE_STATUS 结构体,来接收最后的服务信息
);
(5)关闭SCM管理器
BOOL WINAPI CloseServiceHandle(
  __in          SC_HANDLE hSCObject
);
完整例程

 

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn