Entwickler-Ecke

Windows API - ReadDirectoryChangesW und FILE_ACTION_RENAMED_NEW_NAME


AHT - Mo 03.03.08 11:40
Titel: ReadDirectoryChangesW und FILE_ACTION_RENAMED_NEW_NAME
Vorneweg: XP ohne Servicepack.

Ich habe mal die API ReadDirectoryChangesW in einem kleinen Tool mit asynchronem Aufruf eingebaut. Die Rückmeldungen sind sehr brauchbar und sehen interessant aus, was mich aber im Augenblick stutzig macht:
FILE_ACTION_RENAMED_NEW_NAME erhalte ich nie als Rückgabe. "Verpasse" ich da evtl. was? Hat jemand ähnliche Erfahrungen bei asynchronem Aufruf von ReadDirectoryChangesW und kann mir erklären, woran das liegen könnte? Progge nicht in Delphi.

PS:
Welche Technikem verwendet ihr für einen asynchronen Aufruf? Ganz grobe beschreibung reicht - z.B. ich warte mit GetQueuedCompletionStatus bis ein Ergebnis da ist...


AHT - Di 04.03.08 13:31

...es würde mich auch sehr interessieren, ob bei einem synchronen Aufruf von ReadDirectoryChangesW, also innerhalb eines zweiten Threads, bei irgendjemandem der Flag FILE_ACTION_RENAMED_NEW_NAME zurückgegeben wird, oder ob der Flag auch da fehlt. Kann gerade das leider nicht vernünftig testen und kann mir im Augenblick nicht erklären, ob das Fehlen dieses Flags an meinem Code, meiner Programmiersprache, am asynchronen Aufruf oder an Windows liegt.
Ich denke mal, irgendjemand hier hat bestimmt schon mal mit der Funktion gearbeitet.


AHT - Di 04.03.08 15:41

Hat sich erledigt, Fehler gefunden.
Durch einen ganz dummen Fehler habe ich den letzten Eintrag des FILE_NOTIFY_INFORMATION Buffers nicht mit ausgelesen - und der letzte Eintrag ist beim Ändern eines Dateinamens scheinbar in der Regel genau der mit FILE_ACTION_RENAMED_NEW_NAME.