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

将磁带放置在分区开头的分区 分区 如果已分区,如果介质未分区,则放置到介质的开头。 如果未分区媒体,分区 必须设置为零。 忽略 偏移量 成员。

TAPE_ABSOLUTE_BLOCK

将磁带置于绝对块地址处,该地址位于 偏移量指定的偏移量处。 将忽略 分区 成员中的值。

TAPE_LOGICAL_BLOCK

将磁带定位到 Offset指定的逻辑块地址,相对于 分区中指示的分区的开头。 如果未分区媒体,分区 必须设置为零。

TAPE_PSEUDO_LOGICAL_BLOCK

将磁带定位到 偏移量指定的伪块地址,相对于 分区中指示的分区的开头。 如果未分区媒体,分区 必须为零。

TAPE_SPACE_END_OF_DATA

将磁带放置在 分区中指示的分区的末尾,或者如果介质未分区,则位于磁带的末尾。 忽略 偏移量 成员。

TAPE_SPACE_RELATIVE_BLOCKS

从当前位置开始,紧接 偏移量指定的块数之后放置磁带。 将忽略 分区 成员。

TAPE_SPACE_FILEMARKS

从当前位置开始,紧接 偏移量指定的文件标记数之后放置磁带。 将忽略 分区 成员。

TAPE_SPACE_SEQUENTIAL_FMKS

从当前位置开始,下一次出现后立即放置磁带(如果有)Offset指定的连续文件标记数。 将忽略 分区 成员。

TAPE_SPACE_SETMARKS

从当前位置开始,紧接 偏移量指定的设置标记数之后放置磁带。 将忽略 分区 成员。

TAPE_SPACE_SEQUENTIAL_SMKS

从当前位置开始,下一次出现后立即放置磁带(如果有)Offset指定的连续设置标记数。 将忽略 分区 成员。

Partition

指示要在其中设置磁带位置的分区。 此成员必须具有以下值之一:

NOT_PARTITIONED(或零)
DATA_PARTITION
DIRECTORY_PARTITION

如果未对媒体进行分区,则此成员为零。

Offset

指定一个偏移量,其类型取决于 方法中的值。 如果指定的方法将磁带定位到块地址,Offset 指定字节偏移量到指定的分区中。 如果指定的方法是跳过块、文件标记或设置标记,Offset 指定要跳过的数字。 如果 偏移量 为零,则磁带位于分区的开头。

Immediate

如果设置为 TRUE,则指示目标设备应立即返回状态。 如果设置为 FALSE,则表示设备应在作完成后返回状态。

言论

请注意,驱动器或磁带可能不支持所有 方法 值。

从 1 到 N 逻辑对分区进行编号。但是,分区号并不意味着磁带上的物理位置。 例如,分区号 1 可能不在媒体的开头。

当偏移量指定多个块、文件标记或设置标记时,偏移量中的正值 N 会导致转发定位到 N 块、文件标记或集标记,在块、文件标记或集标记的分区末尾或磁带端停止。 偏移量中的零值不会更改位置。 偏移量中的负值 N 会导致反向定位,在分区开头或磁带介质上,超过 N 块、文件标记或设置标记,在块、文件标记或设置标记的分区开始端停止。

要求

要求 价值
标头 ntddtape.h(包括 Ntddtape.h、Minitape.h)

另请参阅

IOCTL_TAPE_SET_POSITION

TapeMiniSetPosition