wenn du am Dateisystemtreiber vorbei die Daten änderst, dann kann ja nichts gutes bei rauskommen.
der Windowstreiber kopiert beim Lesen die Daten in seine Cache und ließt dann dort aus ... drum die unveränderten Daten.
Vorschlag: das Laufwerk dismounten und neu mounten (beim Dismounten sollte die Cache freigegeben werden)
Delphi-Quellcode:
hDrive: THandle;
W: LongWord;
hDrive := CreateFile('\\.\X:', GENERIC_READ or GENERIC_WRITE,
FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, 0, 0);
if hDrive <> INVALID_HANDLE_VALUE then begin
DeviceIoControl(hDrive, FSCTL_DISMOUNT_VOLUME { $00090020 },
nil, 0, nil, 0, W, nil);
CloseHandle(hDrive);
end;