Obter o deslocamento do arquivo no número do disco / cluster

Eu preciso obter qualquer informação sobre onde o arquivo está fisicamente localizado no disco NTFS. Deslocamento absoluto, ID do cluster ... qualquer coisa. Eu preciso verificar o disco duas vezes, uma vez para obter os arquivos alocados e mais uma vez eu preciso abrir a partição diretamente no modo RAW e tentar encontrar o restante dos dados (de arquivos excluídos). Eu preciso de uma maneira de entender que os dados que encontrei são os mesmos que eu já manipulei anteriormente como arquivo. Como estou digitalizando disco no modo raw, o deslocamento dos dados encontrados pode ser de alguma forma convertido no deslocamento do arquivo (com informações sobre a geometria do disco). Há alguma maneira de fazer isso? Outras soluções são aceitas também. Agora estou jogando com o FSCTL_GET_NTFS_FILE_RECORD, mas não consigo fazê-lo funcionar no momento e não tenho certeza se isso ajudará.

ATUALIZAR

Eu encontrei a seguinte funçãohttp://msdn.microsoft.com/pt-br/library/windows/desktop/aa364952(v=vs.85).aspx Ele retorna a estrutura que contém variáveis ​​nFileIndexHigh e nFileIndexLow. Documentação diz

The identifier that is stored in the nFileIndexHigh and nFileIndexLow members is called the file ID. Support for file IDs is file system-specific. File IDs are not guaranteed to be unique over time, because file systems are free to reuse them. In some cases, the file ID for a file can change over time.

Eu realmente não entendo o que é isso. Não consigo conectá-lo ao local físico do arquivo. É possível extrair posteriormente esse ID de arquivo da MFT?

ATUALIZAR

Encontrei isto:This identifier and the volume serial number uniquely identify a file. This number can change when the system is restarted or when the file is opened.

Isso não satisfaz meus requisitos, porque eu vou abrir o arquivo e o fato de que o ID pode mudar não me deixa feliz.

Alguma ideia?

questionAnswers(1)

yourAnswerToTheQuestion