共用方式為


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)

另請參閱

IOCTL_TAPE_SET_POSITION

TapeMiniSetPosition