驱动加载易语言源码
系统结构:Load,Close,CTL_CODE,OpenDriveLink,GetDeviceHandle,GetDeviceName,GetServicesName,SetServicesName,OpenFile,取路径文件名,AnsiToUnicode,UnicodeToAnsi,CreateService,OpenService,StartService,CloseServiceHandle,CreateFile,ControlService,OpenSCManager,DeleteService,CloseHandle,PathFindFileName,DeviceIoControl,SendMessage,LoadIcon,GetModuleHandleA,GetOpenFileNamePreview,RtlAdjustPrivilege,MultiByteToWideChar,WideCharToMultiByte,
======Driver
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ Load
| |
| |------ Close
| |
| |------ CTL_CODE
| |
| |------ OpenDriveLink
| |
| |------ GetDeviceHandle
| |
| |------ GetDeviceName
| |
| |------ GetServicesName
| |
| |------ SetServicesName
| |
| |
======Main
| |
| |------ __启动窗口_创建完毕
| |
| |------ _按钮_Select_被单击
| |
| |------ _按钮_load_被单击
| |
| |------ _按钮_Close_被单击
| |
| |------ _按钮_Control_被单击
| |
| |------ _编辑框_Device_鼠标左键被按下
| |
| |------ _编辑框_Device_失去焦点
| |
| |
======Proc
| |
| |------ OpenFile
| |
| |------ 取路径文件名
| |
| |------ _16To10
| |
| |------ AnsiToUnicode
| |
| |------ UnicodeToAnsi
| |
| |
======调用的Dll
| |
| |---[dll]------ CreateService
| |
| |---[dll]------ OpenService
| |
| |---[dll]------ StartService
| |
| |---[dll]------ CloseServiceHandle
| |
| |---[dll]------ CreateFile
| |
| |---[dll]------ ControlService
| |
| |---[dll]------ OpenSCManager
| |
| |---[dll]------ DeleteService
| |
| |---[dll]------ CloseHandle
| |
| |---[dll]------ PathFindFileName
| |
| |---[dll]------ DeviceIoControl
| |
| |---[dll]------ SendMessage
| |
| |---[dll]------ LoadIcon
| |
| |---[dll]------ GetModuleHandleA
| |
| |---[dll]------ GetOpenFileNamePreview
| |
| |---[dll]------ RtlAdjustPrivilege
| |
| |---[dll]------ MultiByteToWideChar
| |
| |---[dll]------ WideCharToMultiByte
调用的DLL命令:
.DLL命令 CreateService, 整数型, "advapi32.dll", "CreateServiceA"
.参数 hSCManager, 整数型
.参数 lpServiceName, 文本型
.参数 lpDisplayName, 文本型
.参数 dwDesiredAccess, 整数型
.参数 dwServiceType, 整数型
.参数 dwStartType, 整数型
.参数 dwErrorControl, 整数型
.参数 lpBinaryPathName, 文本型
.参数 lpLoadOrderGroup, 整数型
.参数 lpdwTagId, 整数型
.参数 lpDependencies, 整数型
.参数 lpServiceStartName, 整数型
.参数 lpPassword, 整数型
.DLL命令 OpenService, 整数型, "advapi32.dll", "OpenServiceA"
.参数 hSCManager, 整数型
.参数 lpServiceName, 文本型
.参数 dwDesiredAccess, 整数型
.DLL命令 StartService, 整数型, "advapi32.dll", "StartServiceA"
.参数 hService, 整数型
.参数 dwNumServiceArgs, 整数型
.参数 lpServiceArgVectors, 整数型
.DLL命令 CloseServiceHandle, 整数型, "advapi32.dll", "CloseServiceHandle"
.参数 hService, 整数型
.DLL命令 CreateFile, 整数型, "kernel32", "CreateFileA"
.参数 lpFileName, 文本型
.参数 dwDesiredAccess, 整数型
.参数 dwShareMode, 整数型
.参数 lpSecurityAttributes, 整数型
.参数 dwCreationDisposition, 整数型
.参数 dwFlagsAndAttributes, 整数型
.参数 hTemplateFile, 整数型
.DLL命令 ControlService, 整数型, "advapi32.dll", "ControlService"
.参数 hService, 整数型
.参数 dwControl, 整数型
.参数 lpServiceStatus, SERVICE_STATUS
.DLL命令 OpenSCManager, 整数型, "advapi32.dll", "OpenSCManagerA"
.参数 lpMachineName, 整数型
.参数 lpDatabaseName, 整数型
.参数 dwDesiredAccess, 整数型
.DLL命令 DeleteService, 逻辑型, "advapi32.dll", "DeleteService"
.参数 hService, 整数型
.DLL命令 CloseHandle, 整数型, , "CloseHandle"
.参数 Handle, 整数型
.DLL命令 PathFindFileName, 整数型, "shlwapi.dll", "PathFindFileNameA", , 成功返回路径文本指针地址
.参数 pszPath, 文本型
.DLL命令 DeviceIoControl, 整数型, "kernel32.dll", "DeviceIoControl"
.参数 hDevice, 整数型, , 设备句柄
.参数 dwIoControlCode, 整数型, , 带有 FSCTL_ 前缀的常数.参考设备控制选项的部分列表设备控制选项的部分列表——参考DeviceIoControl函数
.参数 lpInBuffer, 整数型, , 具体取决于dwIoControlCode参数.参考设备控制选项的部分列表
.参数 nInBufferSize, 整数型, , 输入缓冲区的长度
.参数 lpOutBuffer, 整数型, , Anyany型根据实际需要修改 具体取决于dwIoControlCode参数.参考设备控制选项的部分列表
.参数 nOutBufferSize, 整数型, , 输出缓冲区的长度
.参数 lpBytesReturned, 整数型, 传址, 实际装载到输出缓冲区的字节数量
.参数 lpOverlapped, 整数型, , OVERLAPPED这个结构用于重叠操作.针对同步操作请用ByVal As Long传递零值
.DLL命令 SendMessage, 整数型, "user32", "SendMessageA"
.参数 hWnd, 整数型
.参数 Msg, 整数型
.参数 wParam, 整数型
.参数 IParam, 整数型
.DLL命令 LoadIcon, 整数型, "user32", "LoadIconA"
.参数 hInstance, 整数型
.参数 lpIconName, 整数型
.DLL命令 GetModuleHandleA, 整数型, , "GetModuleHandleA"
.参数 Name, 文本型
.DLL命令 GetOpenFileNamePreview, 整数型, "msvfw32.dll", "GetOpenFileNamePreview"
.参数 Format, OpenFileName
.DLL命令 RtlAdjustPrivilege, 整数型, "ntdll.dll", "RtlAdjustPrivilege"
.参数 Privilege, 整数型
.参数 Enable, 整数型
.参数 CurrentThread, 整数型
.参数 Enabled, 整数型, 传址
.DLL命令 MultiByteToWideChar, 整数型, , "MultiByteToWideChar"
.参数 CodePage, 整数型
.参数 dwFlags, 整数型
.参数 lpMultiByteStr, 文本型
.参数 cchMultiByte, 整数型
.参数 lpWideCharStr, 字节集
.参数 cchWideChar, 整数型
.DLL命令 WideCharToMultiByte, 整数型, "kernel32", "WideCharToMultiByte", , 将通配符映像为多字节
.参数 CodePage, 整数型
.参数 dwFlags, 整数型
.参数 lpWideCharStr, 字节集
.参数 cchWideChar, 整数型
.参数 lpMultiByteStr, 文本型
.参数 cchMultiByte, 整数型
.参数 lpDefaultChar, 文本型
.参数 lpUsedDefaultChar, 整数型