TAPE_SET_POSITION結構 (ntddtape.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
如果分割媒體已分割,請將磁帶放在分割區開頭 分割區;如果媒體未分割,則放置至媒體的開頭。 如果未分割媒體,數據分割 必須設定為零。 會忽略 Offset 成員。
TAPE_ABSOLUTE_BLOCK
將磁帶放置在位移的絕對區塊位址上,該位址位於位移 位移所指定的開頭。 會忽略 Partition 成員中的值。
TAPE_LOGICAL_BLOCK
會將磁帶置於 Offset所指定的邏輯區塊位址,相對於 Partition中所指示的數據分割開頭。 如果未分割媒體,數據分割 必須設定為零。
TAPE_PSEUDO_LOGICAL_BLOCK
會將磁帶置於 Offset所指定的虛擬區塊位址,相對於 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
從目前位置開始,將磁帶置於下一個出現之後,如果有的話,Offset 所指定的連續設定標記數目。 會忽略 Partition 成員。
Partition
指出要在其中設定磁帶位置的數據分割。 此成員必須具有下列其中一個值:
- NOT_PARTITIONED (或零)
- DATA_PARTITION
- DIRECTORY_PARTITION
如果未分割媒體,則此成員為零。
Offset
指定類型相依於 方法中的值位移。 如果指定的方法將磁帶放置到區塊位址,Offset 指定位元組位移到指定的分割區。 如果指定的方法是略過區塊、檔案標記或 setmarks,Offset 指定要略過的數位。 如果 Offset 為零,磁帶會位於數據分割的開頭。
Immediate
當設定為 TRUE時,表示目標裝置應該立即傳回狀態。 當設定為 FALSE時,表示裝置應該在作業完成之後傳回狀態。
言論
請注意,磁碟驅動器或磁帶可能不支援所有 方法 值。
分割區會以邏輯方式從 1 編號到 N。不過,分割區編號並不表示磁帶上的實體位置。 例如,分割區編號一可能不在媒體的開頭。
當位移指定數個區塊、檔案標記或設定標記放置於上方時,位移中的正值 N 會導致正值位於 N 個區塊、檔案標記或 setmark,在區塊、檔案標記或 setmark 的磁碟分區結尾或磁帶端停止。 位移中的零值不會變更位置。 位移中的負值 N 會導致在區塊、檔案標記或 setmark 的分割區開頭或磁帶媒體的開頭,在區塊、檔案標記或 setmark 的分割區開頭停止。
要求
要求 | 價值 |
---|---|
標頭 | ntddtape.h (include Ntddtape.h, Minitape.h) |