volume offsets for files getting changed

I am developing an upper volume filter driver, it monitors the
read/write blocks of volume. I am getting the volume offset and
1st sector(LBA) from it when any read/write happens.now could
any one help me to figuring out if i run defrag on the same
volume all the volume offsets for files getting changed???why??
if changed then how can i gain these offsets again…