磁带输入和输出

【勇芳软件工作室】汉化HomePreviousNext

Win32 API提供了几个应用程序可用于在磁带机上执行输入和输出(I / O)的功能。磁带I / O类似于在通信设备上执行的I / O。

执行磁带I / O时,某些磁带机将磁带固件信息存储在磁带上的前几个块中,通常使用前100个块的某些部分。应用程序不应该使用这些块。有关此主题的更多具体信息可从单个磁带系统制造商获得。一般来说,跳过磁带上前100个块的应用程序将避免磁带机的特性。

GetTapePositionSetTapePosition功能检索并移动当前磁带位置。WriteTapemark函数写入指定数量的设置,文件标记,短文件标记和长文件标记。EraseTape功能会擦除全部或部分磁带。

ReadFileWriteFile功能从磁带读取和写入文件数据。数据以完整的块读写。如果磁带的块大小为512字节,则所有读写操作都必须使用缓冲区,这些缓冲区是块大小为512,1024,1536,2048等的简单整数倍。大多数(如果不是全部)驱动器只允许在磁带倒带后或读取操作产生数据结束错误消息之后执行写入操作。

如果ReadFile遇到文件标记,则会读取直到文件标记的数据,并且该函数失败。(GetLastError函数返回一个错误代码,指示遇到的文件标记的类型。)要继续阅读超过文件标记,应用程序必须将磁带移动通过文件标记,并再次调用ReadFile.

ReadFileWriteFile只读和写入数据流。BackupReadBackupWrite函数读取和写入与文件关联的所有流。这些包括数据,扩展属性,安全性和备用数据流。安全和备用数据流仅在新技术文件系统(NTFS)分区上相关。

BackupSeek功能在最初由BackupReadBackupWrite访问的文件中寻求转发。此函数使应用程序能够跳过导致访问错误的信息。

如果应用程序只需访问文件数据,则应使用ReadFileWriteFile.如果通过使用CreateFile功能创建流,这些功能也可以读取备用数据流。

磁带备份应用程序必须使用BackupReadBackupWrite复制与文件相关的所有信息。但是,这些功能不会读取或写入文件特性,如属性,文件创建时间等。应用程序必须使用文件输入和输出功能(如GetFileAttributesSetFileAttributes)来检索和设置这些值。