上传者: lhk791995123126
|
上传时间: 2021-11-20 09:51:08
|
文件大小: 100KB
|
文件类型: -
当初的实现是这样的,通过编写一个 DLL 来调用服务控制台 API 从而完成驱动程序的安装,
然后再在 C# (应用程序是使用的 C# WinForm ,驱动程序必须和这个应用程序通信)中通过平台调用,
访问这个 DLL ,这样就可以实现驱动程序的动态加载以及动态启动服务和停止服务等等操作了。
而在下面呢,我也算是对以前写的那个 DLL 做一个总结,将其总结为一个 C# 类,这样以后用起来会更加方便。
整个的类,我按分层的思想将其分为三块(其实这里将其这样划分不是非常合适)
DriverEntity.cs
这里即是所谓的实体层,在该类下面呢,主要包括的是将要在 DriverBLL 中使用到的一些常量数据,
这些数据呢包括服务的类型,服务启动类型,当然也包括了将会使用到的一些结构类型等等信息。
DriverDAL.cs
这个类即是所谓的数据访问层,
一般来说,数据访问层用在使用数据库的情况下比较合适,
但是在这里我将其抽象为只要是提供最基本的数据服务的 API ,我都将其放在数据访问层中,
所以这里主要是 C# 平台调用时,对于将要调用的 Win32 API 的一个声明,
其中包括了 CreateFile ,OpenService 等等 API 的声明。
DriverBLL.cs
这里就是所谓的业务逻辑层了,其实呢,说白了,其中包括几个重要的方法的实现,
比如启动驱动程序服务,停止驱动程序服务,安装启动程序,卸载驱动程序等方法的实现。
该类是为应用程序提供驱动程序安装功能的直接类。