共用方式為


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)

另請參閱

IOCTL_TAPE_SET_POSITION

TapeMiniSetPosition