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
要取得的地址類型。 此參數可以是下列其中一個值。
值 | 意義 |
---|---|
|
lpdwOffsetLow 和 lpdwOffsetHigh 參數會接收裝置特定的區塊位址。 dwPartition 參數會收到零。 |
|
lpdwOffsetLow 和 lpdwOffsetHigh 參數會接收邏輯區塊位址。 dwPartition 參數會接收邏輯磁帶分割區。 |
[out] lpdwPartition
接收目前磁帶分割區數目的變數指標。 分割區以邏輯方式從 1 到 n 編號,其中 1 是磁帶上的第一個分割區,而 n 是最後一個數據分割。 擷取裝置特定的區塊位址,或如果裝置只支援一個分割區,此參數就會接收零。
[out] lpdwOffsetLow
接收目前磁帶位置低序位之變數的指標。
[out] lpdwOffsetHigh
接收目前磁帶位置之高序位之變數的指標。 如果不需要高序位,此參數可以是 NULL 。
傳回值
如果函式成功,傳回值會NO_ERROR。
如果函式失敗,它可以傳回下列其中一個錯誤碼。
錯誤碼 | 描述 |
---|---|
|
嘗試在媒體開頭標記失敗之前存取數據。 |
|
在總線上偵測到重設條件。 |
|
載入磁帶時,找不到分割區資訊。 |
|
作業期間已到達磁帶結尾標記。 |
|
作業期間已達到檔案標記。 |
|
多卷分割區中新磁帶上的區塊大小不正確。 |
|
磁碟驅動器中的磁帶已取代或移除。 |
|
作業期間已達到數據結束標記。 |
|
磁碟驅動器中沒有媒體。 |
|
磁帶驅動程式不支援要求的函式。 |
|
無法分割磁帶。 |
|
作業期間已達到 setmark。 |
|
嘗試鎖定退出機制失敗。 |
|
嘗試卸除磁帶失敗。 |
|
媒體受到寫入保護。 |
備註
邏輯區塊位址相對於數據分割。 每個分割區上的第一個邏輯區塊位址為零。
呼叫 GetTapeParameters 函式,以取得磁帶機和媒體的狀態、功能和容量相關信息。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | winbase.h (包含 Windows.h) |
程式庫 | Kernel32.lib |
DLL | Kernel32.dll |