masm一个可执行文件的多项服务问题

sunhx402a 2009-06-24 08:18:51
各位大大 如何在一个进程中注册多个服务?罗大大在那篇关于服务的文章中只说 操作SERVICE_TABLE_ENTRY 结构数组 为什么我仿照罗大大的做法添加了一个 结果 StartServiceCtrlDispatcher 就出错了 ..请各位大大帮忙!

_WinMain proc
local @stSTE[3]:SERVICE_TABLE_ENTRY
原来这里是2 我添加了一个结构所以改为3了
invoke RtlZeroMemory,addr @stSTE,sizeof @stSTE
mov @stSTE[0].lpServiceName,offset szServiceName
mov @stSTE[0].lpServiceProc,offset _ServiceMain
;这里我仿照罗大大的做法 添了1个结构 服务名和服务主函数都完全正确
mov @stSTE[1].lpServiceName,offset szServiceName11
mov @stSTE[1].lpServiceProc,offset _ServiceMain11
;不添加这个的话完全正确 一添加就无法正常启动,我怀疑我操作结构数组出了问题
; 请各位大大一定帮帮我 谢谢
invoke StartServiceCtrlDispatcher,addr @stSTE
ret

_WinMain endp
...全文
88 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunhx402a 2009-06-26
  • 打赏
  • 举报
回复
已解决,原因是MASM对于数组的下标是按字节处理的.
大熊猫侯佩 2009-06-25
  • 打赏
  • 举报
回复
出错提示?
cnzdgs 2009-06-25
  • 打赏
  • 举报
回复
mov @stSTE[2].lpServiceName,0
mov @stSTE[2].lpServiceProc,0
invoke StartServiceCtrlDispatcher,addr @stSTE
cnzdgs 2009-06-25
  • 打赏
  • 举报
回复
就是你上面的写法,不过还缺少一点,SERVICE_TABLE_ENTRY数组最后元素要赋值为0。
sunhx402a 2009-06-25
  • 打赏
  • 举报
回复
十分感谢两位的回复,问题就是出在SERVICE_TABLE_ENTRY 结构数组上,MASM对于数组是如何定义和调用的,请详细讲讲好吗?
cnzdgs 2009-06-24
  • 打赏
  • 举报
回复
主要注意以下两点:
1、每个服务都需要安装,服务类型设置为共享进程;
2、SERVICE_TABLE_ENTRY要正确给出所有服务的名称和主函数地址。

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧