Een back-uptoepassing maken
Als u invoer of uitvoer op een tape wilt uitvoeren, moet een back-uptoepassing eerst een ingang van het tapeapparaat verkrijgen. In het volgende codevoorbeeld ziet u hoe u de functie CreateFile gebruikt om een tapeapparaat te openen.
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
Als u een back-up van een mapstructuur naar een tape wilt maken, moet een toepassing de functies FindFirstFile en FindNextFile gebruiken om de mapstructuur te doorlopen. Telkens wanneer een bestand wordt gevonden, moet de toepassing de bestandskenmerken ophalen met behulp van de functie GetFileAttributes.
Als er vaste koppelingen zijn, moet een toepassing het aantal koppelingen bepalen en de unieke id van het bestand opslaan in een tabel voor toekomstige vergelijkingen. De eerste keer dat een bestand wordt gevonden, moet de toepassing CreateFile- gebruiken om het bestand te openen en de functie BackupRead om de back-up te starten. Vervolgens kan de functie WriteFile herhaaldelijk worden gebruikt om alle informatie in de buffer die door BackupRead naar de tape wordt gebruikt, over te dragen. De tweede keer dat een bestand wordt gevonden (gecontroleerd aan de tabel met bestands-id's wanneer er vaste koppelingen zijn), kan de toepassing de algemene bestandsgegevens naar de tape schrijven, gevolgd door een stroom met een id die is BACKUP_LINK.
Wanneer u bestanden van tape naar schijf herstelt, moet een toepassing gebruikmaken van de functies CreateFile, BackupWriteen ReadFile. Voor elk bestand op een tape moet de toepassing CreateFile gebruiken om een nieuw bestand op schijf te maken en BackupWrite om het bestand te herstellen. Vervolgens moet de toepassing herhaaldelijk ReadFile gebruiken totdat alle informatie van het bestand op de tape in de buffer wordt gelezen, gevuld door BackupWrite.
Als een van de streams in de BackupWrite buffer een BACKUP_LINK stream-id heeft, moet de toepassing een vaste koppeling tot stand brengen. Als de gegevens die nodig zijn om de koppeling tot stand te brengen niet bestaan, mislukt BackupWrite. De toepassing kan een bestaande catalogus gebruiken om de oorspronkelijke gegevens te zoeken en te herstellen, of de gebruiker ervan op de hoogte stellen dat de bestandsgegevens die moeten worden hersteld zich op een andere locatie bevinden.