下你所需,载你所想!
汇集开发技术源码资料

易语言驱动加载操作通信模块

:5.62KB :1 :2019-12-11 22:04:38

部分简介

hSCManager = OpenSCManagerA (字符 (0), 字符 (0), #SC_MANAGER_CREATE_SERVICE)
.如果真 (hSCManager = 0)
返回 (-1)
.如果真结束
hService = CreateServiceA (hSCManager, 服务名, 显示名, #SERVICE_START, #SERVICE_KERNEL_DRIVER, #SERVICE_DEMAND_START, #SERVICE_ERROR_IGNORE, 驱动路径, 0, 0, 0, 0, 0)
.如果真 (hService = 0)
hService = OpenServiceA (hSCManager, 服务名, #SERVICE_START)
.如果真 (hService = 0) ' 调用CreateService注册服务失败!
CloseServiceHandle (hSCManager)
返回 (-1)
.如果真结束

.如果真结束
StartServiceA (hService, 0, 0)
CloseServiceHandle (hService)
CloseServiceHandle (hSCManager)
hDevice = CreateFileA (驱动名, #GENERIC_READ + #GENERIC_WRITE, 0, 0, #OPEN_EXISTING, 0, 0)

程序启动的时候加载驱动

驱动加载成功则向驱动发送控制码

驱动接收到控制码,进行遍历,把内容拷贝到用户内存区

使用接收到的数据(驱动模块全路径)添加到List控件中

直接给了200个驱动模块空间.实际上应该是先跟驱动通讯一次,驱动遍历第一次获取其遍历出来的模块数量,根据这个数量Ring3层申请新的空间,然后再次跟驱动通讯,把所有的数据都拷贝过来。

易语言驱动加载操作通信模块

热门推荐

相关文章