Escribir un programa multiplataforma (compatible con 32 bits y 64 bits) para Windows (como AnyCPU en .NET)

Me ha desconcertado cómo funciona la función "AnyCPU" en .NET: carga el ejecutable como nativo de 32 bits si el sistema es de 32 bits, y como de 64 bits si el sistema es de 64 bits (lo cual puede confirmar fácilmente con el Administrador de tareas). Obviamente, esto no es imposible.

La pregunta es, ¿cómo hizo exactamente esto Microsoft? Originalmente, Windows no conocía el marco .NET, por lo que Windows PE Loader no puede buscar ninguna característica adicional en los encabezados PE para el encabezado CLR; Esta característica debe haber sido agregada por algún tipo de extensión en modo kernel. Pero el framework .NET parece no instalar tal cosa ... Estoy completamente perdido en cómo el mismo ejecutable puede ser nativo de 32 bits y 64 bits al mismo tiempo, especialmente porque un desmontaje de mscoree.dll no ni siquiera muestra referencias a funciones nativas indocumentadas.

¿Alguien tiene algún conocimiento y / o conjeturas razonables sobre cómo se hizo esto? Obviamente es posible (así que no digo cosas como "no es posible"), y me dan ganas de intentar escribir unnativo EXE multiplataforma ...

Editar:

Como nota al margen, considere cómo no puede ejecutar ejecutables de 32 bits en un entorno de Windows PE de 64 bits ... haytiene ser una forma de extender o modificar el cargador PE con algún tipo de "complemento", ¿verdad?

Respuestas a la pregunta(2)

Su respuesta a la pregunta