characterization of projective/injective/flat modules via $\operatorname{Hom}$ and $\otimes$ Let $R$ be a commutative unital ring and $M$ an $R$-module. Then $M$ is projective iff $\operatorname{Hom}(M,-)$ is exact, injective iff $\operatorname{Hom}(-,M)$ is exact, and flat iff $M\otimes-$ is exact. Furthermore, $M$ is faithfully flat when every chain complex is exact iff the induced $M\otimes-$ chain complex is exact. 
Question 1: What are the modules with the property:


*

*every chain complex is exact iff the induced $\operatorname{Hom}(-,M)$ chain complex
is exact;

*every chain complex is exact iff the induced $\operatorname{Hom}(M,-)$ chain complex is exact.


Is there a notion faithfully projective/injective, and does it coincide with projective/injective?
Question 2: Why is $M$ faithfully flat precisely when $(\ast)$ every map $A\to B$ is injective iff $A\!\otimes\!M\to B\!\otimes\!M$ is injective? I know that $-\!\otimes\!M$ is right exact, so it preserves epimorphisms, but if we assume $(\ast)$, how does $A\!\otimes\!M\to B\!\otimes\!M$ surjective imply $A\to B$ surjective?
 A: Regarding question 2, consider the cokernel $C$ of $A \to B$.  If $A\otimes M \to B\otimes M$ is surjective, you will easily check that $C \otimes M = 0$,
and then deduce that $C = 0$.
A: *

*Observe that $0$ is a module with the property that $\mathrm{Hom}(0, -)$ is exact but not faithfully exact. I claim that a module $M$ has the property that $\mathrm{Hom}(M, -)$ is exact if and only if $M$ is a strong generator that is  projective. Indeed, $M$ is a strong generator precisely if $\mathrm{Hom}(M, -)$ is (faithful and) conservative, and $M$ is projective precisely if $\mathrm{Hom}(M, -)$ is exact; but by abstract nonsense, a functor is faithfully exact if and only if it is conservative and exact.
Dually, a module $M$ has the property that $\mathrm{Hom}(-, M)$ is faithfully exact if and only if $M$ is a strong cogenerator that is injective.


*Suppose $M$ has the property that ${-} \otimes M$ preserves and reflects monomorphisms. Then ${-} \otimes M$ preserves kernels and reflects the property of being $0$. Taking cokernels, we deduce that ${-} \otimes M$ reflects epimorphisms. Thus, ${-} \otimes M$ reflects isomorphisms, i.e. is conservative, so by abstract nonsense, ${-} \otimes M$ is faithfully exact.
