Mdl Issue

Hi,

When I should use the MmGetMdlVirtualAddress() and when I should use the
MmGetSystemAddressForMdlSafe()?
If I am pending an IRP and I want to write to the mdl buffer in a system
thread and not in the user mode context thread do I have to use the
MmGetSystemAddressForMdlSafe()

Thanks,
Gil.