Uzyskaj przesunięcie pliku na numer dysku / klastra

Muszę uzyskać wszelkie informacje o tym, gdzie plik fizycznie znajduje się na dysku NTFS. Bezwzględne przesunięcie, identyfikator klastra .. wszystko. Muszę dwukrotnie zeskanować dysk, raz, aby uzyskać przydzielone pliki, i jeszcze raz będę musiał otworzyć partycję bezpośrednio w trybie RAW i spróbować znaleźć resztę danych (z usuniętych plików). Potrzebuję sposobu, aby zrozumieć, że dane, które znalazłem, są takie same jak dane, które wcześniej traktowałem jako plik. Podczas skanowania dysku w trybie surowym przesunięcie znalezionych danych może zostać w jakiś sposób przekształcone na przesunięcie pliku (zawierające informacje o geometrii dysku). Czy jest jakiś sposób, aby to zrobić? Inne rozwiązania są również akceptowane. Teraz gram z FSCTL_GET_NTFS_FILE_RECORD, ale nie mogę go teraz uruchomić i nie jestem pewien, czy to pomoże.

AKTUALIZACJA

Znalazłem następującą funkcjęhttp://msdn.microsoft.com/en-us/library/windows/desktop/aa364952(v=vs.85).aspx Zwraca strukturę zawierającą zmienne nFileIndexHigh i nFileIndexLow. Dokumentacja mówi

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.

Naprawdę nie rozumiem co to jest. Nie mogę połączyć go z fizyczną lokalizacją pliku. Czy można później wyodrębnić ten identyfikator pliku z MFT?

AKTUALIZACJA

Znajdź to: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.

To nie spełnia moich wymagań, ponieważ zamierzam otworzyć plik, a fakt, że ID może się zmienić, nie czyni mnie szczęśliwym.

Jakieś pomysły?

questionAnswers(1)

yourAnswerToTheQuestion