Each Object which will be moved into a pipeline will be encapsulate by psobject in order to provide a consistent view of any object (e.g. .NET Object, WMI Object). So the .NET object, WMI object and COM object will be wrapped into an object adapter like .NET object adapter or WMI object adapter. This type adapter acts as an intermediary between the object and PowerShell.
Is there a detailed description available how the internal powershell architecture works.