共用方式為


GetTapePosition 函式 (winbase.h)

GetTapePosition 函式會在邏輯或絕對區塊中擷取磁帶的目前位址。

語法

DWORD GetTapePosition(
  [in]  HANDLE  hDevice,
  [in]  DWORD   dwPositionType,
  [out] LPDWORD lpdwPartition,
  [out] LPDWORD lpdwOffsetLow,
  [out] LPDWORD lpdwOffsetHigh
);

參數

[in] hDevice

要取得磁帶位置的裝置句柄。 此句柄是使用 CreateFile 建立的。

[in] dwPositionType

要取得的地址類型。 此參數可以是下列其中一個值。

意義
TAPE_ABSOLUTE_POSITION
0L
lpdwOffsetLowlpdwOffsetHigh 參數會接收裝置特定的區塊位址。 dwPartition 參數會收到零。
TAPE_LOGICAL_POSITION
1L
lpdwOffsetLowlpdwOffsetHigh 參數會接收邏輯區塊位址。 dwPartition 參數會接收邏輯磁帶分割區。

[out] lpdwPartition

接收目前磁帶分割區數目的變數指標。 分割區以邏輯方式從 1 到 n 編號,其中 1 是磁帶上的第一個分割區,而 n 是最後一個數據分割。 擷取裝置特定的區塊位址,或如果裝置只支援一個分割區,此參數就會接收零。

[out] lpdwOffsetLow

接收目前磁帶位置低序位之變數的指標。

[out] lpdwOffsetHigh

接收目前磁帶位置之高序位之變數的指標。 如果不需要高序位,此參數可以是 NULL

傳回值

如果函式成功,傳回值會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 函式,以取得磁帶機和媒體的狀態、功能和容量相關信息。

規格需求

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

另請參閱

CreateFile

GetTapeParameters

SetTapePosition