Filename
-
Servus,
weiß jemadn wie ich aus einem File-record den filename rauslesen kann ?DWORD retBytes; NTFS_FILE_RECORD_INPUT_BUFFER Ntfs_Input_Buffer; NTFS_FILE_RECORD_OUTPUT_BUFFER Ntfs_Output_Buffer; ... for(LONGLONG i=0; i<entries;++i) { Ntfs_Input_Buffer.FileReferenceNumber.QuadPart = i; BOOL bResult = DeviceIoControl( device, FSCTL_GET_NTFS_FILE_RECORD, &Ntfs_Input_Buffer, sizeof(NTFS_FILE_RECORD_OUTPUT_BUFFER), &Ntfs_Output_Buffer, sizeof(NTFS_FILE_RECORD_OUTPUT_BUFFER) + SizeOfMftEntry, &retBytes, NULL ); }
-
http://technet.microsoft.com/en-us/library/bb742450.aspx
<quote>
Check out http://www.microsoft.com/msj/1099/journal2/journal2.aspx for the
next article. Basically, you have to save the FRNs for all directories on a
volume, then do a stepwise lookup of ParentFRN to build up the path in a
backwards way.
</quote>Nicht offiziel ist:
- ZwCreateFile to open the file by ID using the FILE_OPEN_BY_ID
- Obtaining a File Name From a File Handle
http://msdn.microsoft.com/en-us/library/aa366789
ABER: Das ändert Dir wieder Dein Journal, was ja eigentlich nicht beabsichtigt ist; deshalb kann dies nicht der richtige Weg sein!Scanne *einmal* die Platte bzgl. der IDs und Du hast die Lösung; das ist genau das, was auch das CJDump macht...
-
und was spricht gegen FSCTL_GET_NTFS_FILE_RECORD ?
-
filename schrieb:
und was spricht gegen FSCTL_GET_NTFS_FILE_RECORD ?
WIE? Was soll dagegen sprechen? Das ist ja gerade das Problem!
Oder siehst Du hier irgendwo einen Dateinamen?
http://msdn.microsoft.com/en-us/library/aa365253