It loads in its entirety, as indicated. The special part is not that you cannot run DLLs, it is that DLL memory pages are usually shared across process boundaries.
If a process tries to write to a page, a copy of this page will be taken and the copy will be visible only to this process (it is called copy-on-write).
DLLs are PE files (i.e., the same as NT drivers or Win32 programs). They are loaded similarly to .exe files into memory-mapped files (MMF or "sections" in the kernel-mode language). This means that the DLL file supports MMF, which represents the loaded DLL. This is the same as passing a valid file descriptor (not INVALID_HANDLE_VALUE ) to CreateFileMapping, as well as (part of) the reason you cannot delete the DLL when it is in use .
In addition, there are some DLLs that do not contain code at all. Such a DLL can also be loaded into a process that has not been executed for the same processor. For example. The x86 DLL resource loads fine in the x64 application.
0xC0000022L
source share