我有一系列以下形式的服务:
R3 NDProxy;NDIS Proxy; [x]
R3 Ntfs;Ntfs; [x]
R1 Null;Null; [x]
通常,分号后面的值是 svchost 组(如果有)和相关文件的加载二进制文件,例如
R2 nsi;Network Store Interface Service;LocalService->C:\Windows\System32\Nsisvc.dll [25600 2009-07-13 23:21:21 Microsoft Corporation]
sc.exe queryex
我通过检查 Windows 内部执行的操作(即使用或类似工具并查看图像路径)排除了代码中的错误。
Windows 如何找到要加载的代码?
答案1
你列出的例子不是服务,而是驱动程序。虽然它们由同一个服务控制管理器管理,但驱动程序是从*.sys
图像中加载的ScLoadDeviceDriver()
,并在内核空间中运行。
如果没有ImagePath
指定,则路径默认为%SystemRoot%\System32\Drivers\<name>.sys
, 例如C:\WINDOWS\System32\Drivers\null.sys
。
Microsoft 已记录此内容KB103000“CurrentControlSet\Services 子项条目”, 在下面图片路径和类型。