首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设备驱动程序的ImagePath

设备驱动程序的ImagePath
EN

Stack Overflow用户
提问于 2011-01-24 09:54:49
回答 2查看 1.6K关注 0票数 0

我总是设置我的驱动程序Imagepath directly.(C:\Windows\System32\drivers\abc.sys)

但我只知道许多设备驱动程序将其ImagePath设置为ImagePath -k netsvcs。

这是Lanman工作站司机的注册表单元。

我想Lanman工作站驱动程序的映像文件是mrxsmb.sys

但是他们没有放置‘System32 32\drivers\mrxsmb.sys’。为什么。

svchost.exe -k netsvcs是什么意思?

即使没有特定的路径,StartService函数也能很好地工作。

服务经理如何(?)我不确定)找到司机的图像路径?

这样做有什么好处吗?

如果我决定用这种方式,我的司机代码应该修改吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-24 17:26:47

设备驱动程序和服务之间存在混淆。

svchost.exe用于在多个服务之间共享相同的进程。该实现是Windows的内部实现,因此不支持在Windows之外使用。

如果您编写设备驱动程序(用于硬件或筛选器驱动程序)或不为Microsoft工作,则不能使用svchost。

造成混乱的原因是因为可以使用启动旧风格(NT4)、非即插即用驱动程序。

票数 3
EN

Stack Overflow用户

发布于 2011-01-24 10:00:49

svchost.exe是一种“多用途”服务。它将多个服务合并到一个单独的exe文件中,每个服务都可以使用例如服务管理控制台进行单独控制。svchost.exe的参数在exe文件中声明“子服务”。

由于startService()不是服务本身的控制消息,而只是启动某个可执行文件的请求(该请求本身必须“知道”它是服务(和wich服务),然后向服务控制管理器注册),所以windows将只执行ImagePath所指向的二进制文件。

在这种情况下(LanManWorkstation),这个二进制是svchost.exe,给它的参数是-k netsvc。这让svchost.exe知道应该启动它提供的许多服务中的哪一个。

与往常一样,二进制文件本身不需要包含所有函数,但也可以加载额外的库。mrxsmb.sys很可能就是这样一个库,尽管我不确定这一点。

因此,这个答案更多的是“一般情况下它是如何工作的”,而不是“是的,netsvc和mrxsmb.sys是LanManWorkstation”。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4780641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档