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版)中对服务进程隔离的更改