TAPE_SET_POSITION結構 (minitape.h)
TAPE_SET_POSITION 結構會與 IOCTL_TAPE_SET_POSITION 要求搭配使用,以將磁帶上的目前位置移至指定的分割區和位移。
語法
typedef struct _TAPE_SET_POSITION {
ULONG Method;
ULONG Partition;
LARGE_INTEGER Offset;
BOOLEAN Immediate;
} TAPE_SET_POSITION, *PTAPE_SET_POSITION;
成員
Method
表示要執行的位置類型。 此成員必須具有下列其中一個值:
TAPE_REWIND
如果已分割媒體,請將磁帶放在分割區中所指出的分割區開頭,如果媒體未分割,則放置到媒體的開頭。 如果媒體未分割,則 Partition 必須設定為零。 Offset 成員會被忽略。
TAPE_ABSOLUTE_BLOCK
將磁帶置於位移所指定開頭的絕對區塊位址。 系統會忽略 Partition 成員中的值。
TAPE_LOGICAL_BLOCK
將磁帶置於 Offset 所指定的邏輯區塊位址,相對於 Partition 中所指出之分割區的開頭。 如果媒體未分割,則 Partition 必須設定為零。
TAPE_PSEUDO_LOGICAL_BLOCK
將磁帶置於 Offset 所指定的虛擬邏輯區塊位址,相對於 Partition 中所指出之分割區的開頭。 如果媒體未分割, Partition 必須為零。
TAPE_SPACE_END_OF_DATA
將磁帶放在數據 分割中指示的磁碟分區結尾,或者如果媒體未分割,則位於磁帶的結尾。 Offset 成員會被忽略。
TAPE_SPACE_RELATIVE_BLOCKS
從目前位置開始,將磁帶放在 Offset 所指定的區塊數目之後。 系統會忽略 Partition 成員。
TAPE_SPACE_FILEMARKS
從目前位置開始,將磁帶放在 Offset 所指定的檔案標記數目之後。 系統會忽略 Partition 成員。
TAPE_SPACE_SEQUENTIAL_FMKS
從目前位置開始,將磁帶放在下一次出現之後,如果有的話, Offset 所指定的連續檔案標記數目。 系統會忽略 Partition 成員。
TAPE_SPACE_SETMARKS
從目前位置開始,將磁帶放在 Offset 所指定的設定標記數目之後。 系統會忽略 Partition 成員。
TAPE_SPACE_SEQUENTIAL_SMKS
從目前位置開始,將磁帶放在下一次出現時,如果有的話, 位移所指定的連續設定標記數目。 系統會忽略 Partition 成員。
Partition
指出要在其中設定磁帶位置的磁碟分區。 此成員必須具有下列其中一個值:
- NOT_PARTITIONED (或零)
- DATA_PARTITION
- DIRECTORY_PARTITION
如果未分割媒體,則這個成員為零。
Offset
指定類型相依於 Method 中值的位移。 如果指定的方法將磁帶放置在區塊位址, Offset 會將位元移指定到指定的分割區。 如果指定的方法是略過區塊、檔案標記或 setmarks,Offset 會指定要略過的數位。 如果 Offset 為零,磁帶會放在分割區的開頭。
Immediate
當設定為 TRUE 時,表示目標裝置應該立即傳回狀態。 當設定為 FALSE 時,表示裝置應該在作業完成之後傳回狀態。
備註
請注意,磁碟驅動器或磁帶可能不支援所有 Method 值。
分割區會以邏輯方式從 1 到 N 編號。不過,分割區編號並不表示磁帶上的實體位置。 例如,分割區編號 1 可能不在媒體開頭。
當位移指定數個區塊、檔案標記或設定標記放置於上方時,位移中的正值 N 會導致向前定位在 N 個區塊、檔案標記或 setmark,在區塊、檔案標記或 setmark 的結尾或磁帶結尾停止。 位移中的零值不會變更位置。 位移中的負值 N 會導致對分割區開頭或磁帶媒體的反向位置,超過 N 個區塊、檔案標記或 setmark,在區塊、檔案標記或 setmark 的分割區開頭端停止。
規格需求
需求 | 值 |
---|---|
標頭 | minitape.h (包含 Ntddtape.h、Minitape.h) |