GetTapeParameters 函式 (winbase.h)

GetTapeParameters 函式會擷取描述磁帶或磁帶機的資訊。

語法

DWORD GetTapeParameters(
  [in]  HANDLE  hDevice,
  [in]  DWORD   dwOperation,
  [out] LPDWORD lpdwSize,
  [out] LPVOID  lpTapeInformation
);

參數

[in] hDevice

處理所要尋找信息的裝置。 此句柄是使用 CreateFile 函式所建立。

[in] dwOperation

要求的信息類型。 此參數必須是下列其中一個值。

意義
GET_TAPE_DRIVE_INFORMATION
1
擷取磁帶裝置的相關信息。
GET_TAPE_MEDIA_INFORMATION
0
擷取磁帶裝置中磁帶的相關信息。

[out] lpdwSize

變數的指標,該變數會接收 lpTapeInformation 參數所指定的緩衝區大小,以位元組為單位。 如果緩衝區太小,此參數會收到所需的大小。

[out] lpTapeInformation

包含所要求信息的 結構指標。 如果 dwOperation 參數GET_TAPE_MEDIA_INFORMATION,lpTapeInformation 會指向TAPE_GET_MEDIA_PARAMETERS結構。

如果 dwOperationGET_TAPE_DRIVE_INFORMATION,lpTapeInformation 會指向TAPE_GET_DRIVE_PARAMETERS結構。

傳回值

如果函式成功,傳回值 會NO_ERROR

如果函式失敗,它可以傳回下列其中一個錯誤碼。

錯誤碼 描述
ERROR_BEGINNING_OF_MEDIA
1102L
嘗試在媒體開頭標記失敗之前存取數據。
ERROR_BUS_RESET
1111L
在總線上偵測到重設條件。
ERROR_DEVICE_NOT_PARTITIONED
1107L
載入磁帶時,找不到分割區資訊。
ERROR_END_OF_MEDIA
1100L
作業期間已到達磁帶結尾標記。
ERROR_FILEMARK_DETECTED
1101L
作業期間已達到檔案標記。
ERROR_INVALID_BLOCK_LENGTH
1106L
多卷分割區中新磁帶上的區塊大小不正確。
ERROR_MEDIA_CHANGED
1110L
磁碟驅動器中的磁帶已取代或移除。
ERROR_NO_DATA_DETECTED
1104L
作業期間已達到數據結束標記。
ERROR_NO_MEDIA_IN_DRIVE
1112L
磁碟驅動器中沒有媒體。
ERROR_NOT_SUPPORTED
50L
磁帶驅動程式不支援要求的函式。
ERROR_PARTITION_FAILURE
1105L
無法分割磁帶。
ERROR_SETMARK_DETECTED
1103L
作業期間已達到 setmark。
ERROR_UNABLE_TO_LOCK_MEDIA
1108L
嘗試鎖定退出機制失敗。
ERROR_UNABLE_TO_UNLOAD_MEDIA
1109L
嘗試卸除磁帶失敗。
ERROR_WRITE_PROTECT
19L
媒體受到寫入保護。

備註

區塊大小範圍值 (最大值和最小) 由 呼叫的 GetTapeParameters 函式所傳回, 並將 dwOperation 參數設定為 GET_TAPE_DRIVE_INFORMATION 值會指出系統限制,而不是驅動限制。 不過,這是磁帶機裝置和磁碟驅動器中存在的媒體,可決定真正的區塊大小限制。 因此,應用程式可能無法在 dwOperation 中指定GET_TAPE_DRIVE_INFORMATION來設定範圍中提及的所有區塊大小。

規格需求

需求
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平台 Windows
標頭 winbase.h (包含 Windows.h)
程式庫 Kernel32.lib
DLL Kernel32.dll

另請參閱

CreateFile

SetTapeParameters

TAPE_GET_DRIVE_PARAMETERS

TAPE_GET_MEDIA_PARAMETERS