Если в библиотеке нету каких-то статических или глобальных объектов, которые вызывают конструктора при загрузке, то считай что все данные после загрузки неинициализированы
Тут надо уже читать мануалы Если под атачем подразумевается создание контекста для .dll, то при загрузке D1 и D2, каждый из них создаст ещё по контексту той общей библиотеки
Допустим в библиотеке есть какие-то статические или глобальные данные и она уже находится в оперативной памяти. Для каждого нового участника который хочет к ней присоедениться создаётся выделенная область памяти где храняться эти самые глобальные/статические данные