Vytvoření zálohovací aplikace

Aby bylo možné na pásku provést vstup nebo výstup, musí zálohovací aplikace nejprve získat úchyt páskového zařízení. Následující ukázka kódu ukazuje, jak pomocí funkce CreateFile otevřít páskové zařízení.

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

Pokud chcete zálohovat adresářový strom na pásku, musí aplikace použít FindFirstFile a FindNextFile funkce pro procházení stromu adresáře. Při každém nalezení souboru by aplikace měla získat atributy souboru pomocí funkce GetFileAttributes.

Pokud existují pevné odkazy, aplikace by měla určit počet odkazů a uložit jedinečný identifikátor souboru v tabulce pro budoucí porovnání. Při prvním nalezení souboru by aplikace měla k otevření souboru použít CreateFile a funkce BackupRead pro zahájení zálohování. Pak může funkci WriteFile opakovaně používat k přenosu všech informací ve vyrovnávací paměti, kterou používá BackupRead, na pásku. Při druhém nalezení souboru (pokud je oproti tabulce identifikátorů souborů zjištěna existence pevných odkazů) může aplikace zapsat na pásku obecné informace o souboru, následovány datovým proudem, který má identifikátor BACKUP_LINK.

Při obnovování souborů z pásky na disk musí aplikace používat funkce CreateFile, BackupWritea ReadFile. Pro každý soubor na pásce by aplikace měla použít CreateFile vytvořit nový soubor na disku a BackupWrite začít obnovovat soubor. Aplikace by pak měla opakovaně používat ReadFile, dokud se všechny informace pro soubor nepřenesou z pásky do vyrovnávací paměti, kterou zaplní BackupWrite.

Pokud jeden z datových proudů v BackupWrite vyrovnávací paměti má identifikátor datového proudu BACKUP_LINK, musí aplikace vytvořit pevný odkaz. Pokud data potřebná k vytvoření propojení neexistují, BackupWrite selže. Aplikace může použít existující katalog k vyhledání a obnovení původních dat nebo může uživatele upozornit, že data souboru, která se mají obnovit, jsou v jiném umístění.