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) |