Andreas, das ist natürlich auch genial. Und das Beste ist, dass ich es mit Uwes Rat kombinieren kann.
Meine Ergebnisse sind:
DateiInfoByHandle
Neustart mit Defender | 20 sec |
Neustart ohne Defender | 12 sec |
Zweitstart mit Defender | 19 sec |
Zweitstart ohne Defender | 19 sec |
Interessant, dass die Routine nach einem Neustart sogar schneller ist, aber dafür gibt es vermutlich auch eine Erklärung.
Erst jetzt fällt mir auf, dass es auch
GetFileInformationByHandleEx mit dem Parameter
FileInformationClass gibt. Da wäre
FileIdInfo interessant, das aber leider nicht die Anzahl der Hardlinks mitliefert, die ich brauche. Anscheinend gibt es aber die Ex-Version nicht bei Delphi. Könnte man nachbauen, aber ist für mich vermutlich unnötig.
Jedenfalls bin ich ein großes Stück weitergekommen, hätte ich nicht gedacht. Vielen Dank euch beiden.
Offtopic: Ich bin immer noch ein ganz großer Fan von AsyncCalls und habe es nach wie vor in Verwendung.