共用方式為


建立備份應用程式

若要在磁帶上執行輸入或輸出,備份應用程式必須先取得磁帶裝置的控制代碼。 下列程式代碼範例示範如何使用 CreateFile 函式來開啟磁帶裝置。

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

若要將目錄樹狀結構備份到磁帶,應用程式必須使用 FindFirstFile,並 FindNextFile 函式來周遊目錄樹狀結構。 每次找到檔案時,應用程式都應該使用 GetFileAttributes 函式來取得檔案屬性。

如果有硬式連結,應用程式應該判斷連結數目,並將檔案的唯一標識符儲存在數據表中以供日後比較。 第一次找到檔案時,應用程式應該使用 CreateFile 來開啟檔案,而 BackupRead 函式會開始備份。 然後,它可以重複使用 WriteFile 函式,將 BackupRead 所使用的緩衝區中的所有資訊傳送到磁帶。 第二次找到檔案時,應用程式可以在有硬式連結時,針對檔案標識符的數據表進行檢查),應用程式可以將一般檔案資訊寫入磁帶,後面接著具有 BACKUP_LINK標識碼的數據流。

將檔案從磁帶還原到磁碟時,應用程式必須使用 CreateFileBackupWriteReadFile 函式。 針對磁帶上的每個檔案,應用程式應該使用 CreateFile 在磁碟上建立新檔案,BackupWrite 開始還原檔案。 然後,應用程式應該重複使用 ReadFile,直到將檔案的所有資訊從磁帶讀取到由backupWrite 所填入的緩衝區為止。

如果 BackupWrite 緩衝區中的其中一個數據流具有 BACKUP_LINK 數據流標識符,則應用程式必須建立硬連結。 如果建立連結所需的數據不存在,BackupWrite 失敗。 應用程式可以使用預先存在的目錄來尋找和還原原始數據,也可以通知使用者要還原的檔案數據位於不同的位置。