Delen via


Tapeinvoer en -uitvoer

Er zijn verschillende functies die toepassingen kunnen gebruiken om invoer en uitvoer (I/O) op een tapestation uit te voeren. Tape I/O is vergelijkbaar met I/O die op een communicatieapparaat wordt uitgevoerd.

Bij het uitvoeren van tape-I/O slaan sommige tapestations informatie over tapefirmware op in de eerste paar blokken op een tape, meestal met behulp van een deel van de eerste 100 blokken. Toepassingen mogen deze blokken niet gebruiken. Meer specifieke informatie over dit onderwerp is beschikbaar bij individuele tapesysteemfabrikanten. Over het algemeen voorkomt een toepassing die de eerste 100 blokken op een tape overslaat idiosyncrasies van tapestations.

De functies GetTapePosition en SetTapePosition de huidige tapepositie ophalen en verplaatsen. De functie WriteTapemark schrijft een opgegeven aantal ingestelde markeringen, bestandsmarkeringen, korte bestandsmarkeringen en lange bestandsmarkeringen. Met de functie GumTape worden alle of delen van een tape gewist.

De ReadFile en WriteFile functies lezen en schrijven bestandsgegevens van en naar de tape. De gegevens worden gelezen en geschreven in volledige blokken. Als de blokgrootte van de tape 512 bytes is, moeten alle lees- en schrijfbewerkingen buffers gebruiken die eenvoudige gehele getallen van die blokgrootte zijn: 512, 1024, 1536, 2048 enzovoort. De meeste, zo niet alle stations, staan alleen schrijfbewerkingen toe nadat de tape opnieuw is geactiveerd of nadat een leesbewerking een foutbericht over het einde van de gegevens produceert.

Als u bestandsgegevens wilt lezen of schrijven naar of van een tape in de blokmodus met variabele lengte, voert u de volgende stappen uit:

  1. Bepaal of het tapestation de blokmodus met variabele lengte ondersteunt door de functie GetTapeParameters aan te roepen en de TAPE_DRIVE_VARIABLE_BLOCK bit van de FeaturesLow lid van de geretourneerde TAPE_GET_DRIVE_PARAMETERS structuur aan te roepen.
  2. Geef de modus variabeleblokgrootte op door de functie SetTapeParameters aan te roepen, waarbij u de BlockSize- lid van de TAPE_SET_MEDIA_PARAMETERS-structuur instelt op nul. Gebruik vervolgens ReadFile of WriteFile om de bestandsgegevens te lezen of te schrijven.

Als ReadFile een bestandsmarkering tegenkomt, worden de gegevens tot aan de bestandsmarkering gelezen en mislukt de functie. (De functie GetLastError retourneert een foutcode die het type bestandsmarkering aangeeft dat is aangetroffen.) Het besturingssysteem verplaatst de tape voorbij de bestandsmarkering en een toepassing kan ReadFile opnieuw aanroepen om door te gaan met lezen.

ReadFile en WriteFile alleen de gegevensstroom lezen en schrijven. De BackupRead en BackupWrite functies lezen en schrijven alle streams die aan een bestand zijn gekoppeld. Dit zijn onder andere gegevens, uitgebreide kenmerken, beveiliging en alternatieve gegevensstromen. De beveiliging en alternatieve gegevensstromen zijn alleen relevant op de NTFS-bestandssysteempartitie.

De functie BackupSeek zoekt in eerste instantie naar een bestand dat in eerste instantie wordt geopend door BackupRead- of BackupWrite-. Met deze functie kan een toepassing informatie overslaan die toegangsfouten veroorzaakt.

Als een toepassing alleen toegang moet hebben tot de bestandsgegevens, moet deze gebruikmaken van ReadFile- en WriteFile-. Deze functies kunnen ook alternatieve gegevensstromen lezen als de streams zijn gemaakt met behulp van de functie CreateFile.

Een tapeback-uptoepassing moet gebruikmaken van BackupRead- en BackupWrite- om alle informatie over een bestand te kopiƫren. Deze functies lezen of schrijven echter geen bestandskenmerken, zoals kenmerken, de aanmaaktijd van bestanden, enzovoort. Toepassingen moeten gebruikmaken van de bestandsinvoer- en uitvoerfuncties, zoals GetFileAttributes en SetFileAttributes, om deze waarden op te halen en in te stellen.