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

如果媒體已分割,請將磁帶放在數據分割中指出的分割區開頭,如果媒體未分割,則放置到媒體的開頭。 如果未分割媒體,則 Partition 必須設定為零。 會忽略 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

從目前位置開始,將磁帶放在下一次出現之後,如果有的話, 位移所指定的連續文件標記數目。 系統會忽略 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 時,表示裝置應該在作業完成之後傳回狀態。

備註

請注意,磁碟驅動器或磁帶可能不支援所有 方法 值。

分割區會以邏輯方式從 1 到 N 編號。不過,數據分割編號並不表示磁帶上的實體位置。 例如,分割區編號 1 可能不在媒體的開頭。

當位移指定要放置的區塊、檔案標記或設定標記數目時,位移中的正值 N 會導致向前定位到 N 個區塊、檔案標記或 setmark,在區塊、檔案標記或 setmark 的結尾或磁帶端停止。 位移中的零值不會變更位置。 位移中的負值 N 會導致反向定位,直到分割區或磁帶媒體的開頭、N 個區塊、檔案標記或 setmark,在區塊、檔案標記或 setmark 的分割區開頭端停止。

規格需求

需求
標頭 ntddtape.h (包含 Ntddtape.h、Minitape.h)

另請參閱

IOCTL_TAPE_SET_POSITION

TapeMiniSetPosition