структура 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

Размещает ленту по абсолютному адресу блока, расположенному по смещению от начала, заданного параметром Offset. Значение в элементе Секции игнорируется.

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 блокам, файловым знакам или setmarks останавливается на конце секции или конце ленты блока, метки или setmark. Нулевое значение смещения не приводит к изменению позиции. Отрицательное значение N в смещении приводит к остановке обратного позиционирования в начале секции или ленточного носителя по N блокам, меткам файлов или меткам setmark, остановке на стороне начала секции блока, метки файла или метки.

Требования

Требование Значение
Заголовок ntddtape.h (включая Ntddtape.h, Minitape.h)

См. также раздел

IOCTL_TAPE_SET_POSITION

TapeMiniSetPosition