If you explain very simple and not go into details of the case: a DLL that can contain executable functions, methods and so on really needs to be loaded into the address space, which is a sort of buffer, it is allocated from the memory, and this buffer belongs to this process, i.e. the process in which the application runs. Physical memory for the conversation between the application and the DLL is irrelevant... if it is brief and without fanaticism.