Ich komme nicht hinterher: Es ist doch vollkommen egal was es für eine Datei ist - Entweder sie ist exklusiv von einem anderen Prozess geöffnet, oder man kommt doch zum Schreiben rein. Etwas anderes wird deine "IsFileNotInUse"-Funktion wohl nicht prüfen.
Wenn du allerdings bsp. in einem Programm wie Notepad++ eine
XML-Datei offen hast wird die wohl nicht die ganze Zeit die Datei sperren sondern nur hineinschreiben wollen wenn man "Speichern" drückt. Dein selbstgebautes Programm dass Records verarbeitet wird sich da wahrscheinlich anders verhalten.