在托pipe代码中编写核心os组件有哪些困难?

我知道一些微软的员工是像着名的雷蒙德·陈(Raymond Chen)和拉里·奥斯特曼(Larry Osterman)(Vista的audio栈和每个应用程序声音控制机制的工程师)的StackOverflow成员,我们知道杰夫·阿特伍德也在这里。 所以也许我们可以直接从马的口中了解一些关于核心Windows组件的托pipe代码的知识。

我已经下载了所有泄露的Windows Longhorn版本(来自“显而易见的”来源),并使用诸如“dotPeek”和“.net OR not”等工具来查找托pipe代码。 我发现2004年8月的“长angular重置”后,每个版本的托pipe代码都在下降。 但是我甚至发现用托pipe代码写的“windows电影制造者”。

所以,这里是一个问题:在托pipe代码中编写核心os组件有哪些不同之处?

我相信还有其他的考虑,但这是一个相当明显的想法:

托管代码组件需要托管运行时的特定版本,而IIRC中,进程只能有托管运行时的一个实例。 就这样,这就排除了对共享组件使用托管代码 – 因为应用程序及其一个或多个组件可能需要不同版本的运行时,并将其用于应用程序样式组件。

另外请记住,Windows的更多部分实际上是“共享组件”,可能会立即显而易见。 虽然您可能会将Explorer视为应用程序的一种形式,但只要应用程序打开文件/打开常用对话框,现在就会有一大堆的Explorer组件列出可用的文件和目录。