Nochmals zur Verdeutlichung:
Delphi-Quellcode:
FFileHandle := CreateFile(PAnsiChar(AFileName), GENERIC_READ or GENERIC_WRITE, FILE_SHARE_READ,
nil, OPEN_EXISTING, FILE_FLAG_RANDOM_ACCESS or FILE_FLAG_WRITE_THROUGH, 0);
Der Parameter
FILE_FLAG_WRITE_THROUGH sollte eigentlich genau dafür sorgen, dass es sofort geschrieben wird. Es gibt ebenso noch den Parameter FILE_FLAG_NO_BUFFERING. Hierbei wird man dann gezwungen, in der Sektorengröße zu schreiben. Aber auch das bringt mich immer wieder zur selben Fehlermeldung.
Soll heißen, ich brauche die Möglichkeit, Windows Vista klar zu machen, dass ich jetzt fertig bin mit schreiben ( war eigentlich für mich immer CloseHandle) und dann die möglichkeit zu erfahren wann Windows wirklich fertig ist mit schreiben.
Wobei ich nochmals sagen möchte: Die Veränderung in der Datei ist wirksam auf der Karte (trotz Fehlermeldung!)
Gruß, Chris
Edit:
Zitat von
OregonGhost:
Sowas, das hatte ich tatsächlich überlesen. Hatte aber mit meinen Karten / USB-Sticks das Problem noch nicht.
Keine Problem. Überlesen ist nicht schlimm. Du willst wenigstens helfen