Windows Subsystem For Linux(Win10中的新技术)使用LxssUserSession
服务。此服务未记录,但它用作 WSL 的 API(bash.exe
使用此服务运行 ELF)。如我所见,它是 COM 的一部分:CLSID
注册表中有AppID
. 并AppID
有LocalService
记录:LxssUserSession
。
我对COM不熟悉,但如果我理解正确的话,应该有这个服务支持的COM组件。由于没有 ProgID,我无法从脚本创建此 COM 的实例,但我尝试使用OleView
. 但是,它报告CoCreateInstance
返回的错误。如何调试此错误?会不会是 COM 组件不能被创建和用于不同的东西(即有一些其他的接口)。通常可以使用未记录的 COM 组件吗?我可以跟踪bash.exe
对该服务的调用吗(类似于COM 的调用,logger.exe
还是ltrace
只用于 COM?)
一些背景:这是我得到的错误: http: //s32.postimg.org/wpthro5kl/error.png
bash.exe
!= /bin/bash
。bash.exe
是连接到LxssUserSession
并要求它运行的 PE(Win64 bin 应用程序) /bin/bash
(这是 ELF(Linux 应用程序!)。bash.exe
最好称为“WLS.exe”,但出于某种原因,他们称之为它bash.exe
。
请参见此处:https:/ /msdnshared.blob.core.windows.net/media/2016/04/LXSS-diagram-1024x472.jpg这是它的标题http://s32.postimg.org/khjjf81th/bash.png所以,我确定bash.exe
使用 COM 连接LxssUserSession
并LxssUserSession
使用 Pico (Psp..) 函数将 ELF 作为“pico 进程”启动(参见此处https://blogs.msdn.microsoft.com/wsl/2016/04/22/windows-subsystem-for -linux-概述/)。两者都没有记录,但我相信我可以以某种方式使用 COM,但是我收到了我作为第一个链接提供的错误:(