back

by rramadass·5d ago·view on hn ↗
Right; the links i provided above explain it in more detail.

WinRT is made up of component dlls and therefore exposes functional interface bundles. But the implementation of these components mostly took the path WinRT -> Win32 api -> ntdll (aka "Windows Native api" which is undocumented). But since MS wanted to push WinRT they allowed some paths to be WinRT -> ntdll. AFAIK this is what the mandate/waiver was for.

So you have the current situation that some Win32 apis have no analogues in WinRT and vice-versa. The DirectX path uses "Nano-COM" (a stripped down version of COM) which calls into user-mode runtime dlls which then takes another path to the kernel.

Lets not even get into how .NET projections/interfaces/wrappers do their job ;-)

The key point to know is that COM is only a packaging architecture/framework/middleware for structuring at a user-mode binary level.

It is all quite elaborate and complicated and so making a one-line statement like "everything is COM" is sheer cluelessness.