jdm*_*jdm 8 windows-kernel windows-subsystem-for-linux
如何从Windows Solaris for Linux(WSL)中的Linux二进制文件调用Windows API函数?我很确定没有记录的方法可以这样做,但尝试它可能会很有趣.
我有兴趣调用Win32函数,或者如果不可能,至少是Windows NT本机API(Nt*,Zw*).本机API至少应该是可用的,因为运行Linux进程的组件(lxss)依赖于这些API.
可能需要构建一个类似自定义LoadLibrary的函数来加载Windows DLL.另一个想法是在进程内存中搜索已知的内核函数(即它们的用户模式入口点).
有人试过这个并想分享一个解决方案吗?
总之,你不能.
Linux进程运行的实际进程不是Win32进程,无法加载和执行Win32用户模式代码,也无法调用标准的Win32 NT内核入口点.
有关WSL使用的PicoProcess基础架构的更多信息,请阅读此博客和/或观看随附的视频.
如果你想从WSL中运行的代码"调用"Windows代码,你可能需要考虑使用某种形式的套接字/消息传递/ RPC/REST调用技术,其中关系的整体/两端可以监听和响应消息通过一些网络/插座/管道传输.
归档时间: |
|
查看次数: |
823 次 |
最近记录: |