$\DeclareMathOperator{\col}{\operatorname{col}}\DeclareMathOperator{\diag}{\operatorname{diag}}\DeclareMathOperator{\Range}{\operatorname{Range}}$Let $A \in \mathbb{R}^{n\times m}$, $D = \diag(d) = \diag (d_1,...,d_m)$ such that $d_i \geq 0$ for all $i = 1,...,m$.

Consider the product $X = ADA^\top$. It is known that $\Range(X)\subseteq \Range(A)$. What are the conditions on $D$ and on the $d_i$ such that: $$\Range(X) = \Range(A).$$

I suppose it is something related to the support of $d$ being contained in the null space of $A$, but I am not completely sure about it.