Windows services 0x30的Windows服务类型意味着什么?
Windows services 0x30的Windows服务类型意味着什么?,windows-services,Windows Services,WIN32\u SHARE\u PROCESS(0x20)类型的Windows服务在与其他服务共享的进程中作为线程运行。(尽管在最近的Windows 10版本中,它是。)WIN32_OWN_PROCESS(0x10)类型的Windows服务在其自己的独立进程中运行。但是,某些Windows服务具有类型wIN32_OWN_PROCESS | wIN32_SHARE_PROCESS(0x30)。这个组合是什么意思 sc query调用该组合WIN32。例如,sc query AppInfo报告: S
WIN32\u SHARE\u PROCESS
(0x20
)类型的Windows服务在与其他服务共享的进程中作为线程运行。(尽管在最近的Windows 10版本中,它是。)WIN32_OWN_PROCESS(0x10
)类型的Windows服务在其自己的独立进程中运行。但是,某些Windows服务具有类型wIN32_OWN_PROCESS | wIN32_SHARE_PROCESS
(0x30
)。这个组合是什么意思
sc query
调用该组合WIN32
。例如,sc query AppInfo
报告:
SERVICE_NAME: AppInfo
TYPE : 30 WIN32
STATE : 4 RUNNING
(STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
Windows API文档没有提到这种可能性。他们独立地讨论每个标志的含义,但不是组合在一起。在的文档中,它们确实引用了0x30
,但在该函数的上下文中,它被文档化为返回设置了两种类型的服务,它没有讨论设置了两种类型的服务意味着什么
(服务类型字段可以包含几个其他值:驱动程序服务,如SERVIC\u KERNEL\u driver
,service\u INTERACTIVE\u进程
标志,用户服务等。在这个问题中,我不询问任何其他值/标志,只询问0x30
组合。),可能导致类型为SERVICE_WIN32_SHARE_PROCESS的服务在其自己的独立进程中运行。每当服务发生这种情况时,SC都会将其显示为服务WIN32——服务WIN32自有进程和服务WIN32共享进程的混乱结合
我们通过使用注册表确认了这种情况
在我们的Windows 10虚拟机(具有足够的RAM来触发进程隔离增强)上,SC表示AppInfo的类型为WIN32(30):
任务管理器报告AppInfo正在其自己的进程中运行
根据,我们通过添加SvcHostSplitDisable值禁用了AppInfo服务的进程隔离:
重新启动后,SC报告了WIN32_SHARE_PROCESS(20)类型的AppInfo:
任务经理确认该过程确实是共享的
因此,这一切都取决于Windows10Creators更新(1703版)中对服务进程隔离的更改