Erstellen einer Sicherungsanwendung
Um Ein- oder Ausgabe auf einem Band durchzuführen, muss eine Sicherungsanwendung zunächst ein Handle des Bandgeräts abrufen. Im folgenden Codebeispiel wird gezeigt, wie Sie die CreateFile-Funktion verwenden, um ein Bandgerät zu öffnen.
HANDLE hTape; // handle to tape device
hTape = CreateFile(TEXT("\\\\.\\TAPE0"), // tape dev to open
GENERIC_READ | GENERIC_WRITE, // read/write access
0, // not used
0, // not used
OPEN_EXISTING, // req for tape devs
0, // not used
NULL); // not used
Um eine Verzeichnisstruktur auf einem Band zu sichern, muss eine Anwendung die Funktionen FindFirstFile und FindNextFile verwenden, um die Verzeichnisstruktur zu durchlaufen. Jedes Mal, wenn eine Datei gefunden wird, sollte die Anwendung die Dateiattribute mithilfe der GetFileAttributes-Funktion erhalten.
Wenn es harte Links gibt, sollte eine Anwendung die Anzahl der Links bestimmen und den eindeutigen Bezeichner der Datei für zukünftige Vergleiche in einer Tabelle speichern. Wenn eine Datei zum ersten Mal gefunden wird, sollte die Anwendung CreateFile verwenden, um die Datei zu öffnen, und die BackupRead-Funktion, um die Sicherung zu starten. Anschließend kann die WriteFile-Funktion wiederholt verwendet werden, um alle Informationen im Puffer, die von BackupRead verwendet werden, auf das Band zu übertragen. Wenn eine Datei zum zweiten Mal gefunden wird (überprüft auf die Tabelle der Dateibezeichner, wenn harte Links enthalten sind), kann die Anwendung die allgemeinen Dateiinformationen auf das Band schreiben, gefolgt von einem Stream mit einem Bezeichner, der BACKUP _ LINK ist.
Beim Wiederherstellen von Dateien von Band auf Datenträger muss eine Anwendung die Funktionen CreateFile, BackupWriteund ReadFile verwenden. Für jede Datei auf einem Band sollte die Anwendung CreateFile verwenden, um eine neue Datei auf dem Datenträger zu erstellen, und BackupWrite, um mit der Wiederherstellung der Datei zu beginnen. Anschließend sollte die Anwendung ReadFile wiederholt verwenden, bis alle Informationen für die Datei vom Band in den Puffer gelesen werden, der von BackupWrite gefüllt wird.
Wenn einer der Datenströme im BackupWrite-Puffer über einen BACKUP LINK-Datenstrombezeichner _ verfügt, muss die Anwendung eine harte Verknüpfung einrichten. Wenn die zum Herstellen des Links erforderlichen Daten nicht vorhanden sind, schlägt BackupWrite fehl. Die Anwendung kann einen bereits vorhandenen Katalog verwenden, um die ursprünglichen Daten zu suchen und wiederherzustellen, oder sie kann den Benutzer benachrichtigen, dass sich die wiederherzustellenden Dateidaten an einem anderen Speicherort befinden.