Поделиться через


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

Помещает ленту в адрес логического блока, указанный смещения, относительно начала секции, указанной в секции. Если носитель не секционирован, секционирование должно быть равно нулю.

TAPE_PSEUDO_LOGICAL_BLOCK

Помещает ленту в адрес псевдологического блока, указанный смещения, относительно начала секции, указанной в секции. Если носитель не секционирован, секции должно быть равно нулю.

TAPE_SPACE_END_OF_DATA

Помещает ленту в конец секции, указанной в секции, или если носитель не секционирован, в конце ленты. Элемент смещения игнорируется.

TAPE_SPACE_RELATIVE_BLOCKS

Начиная с текущей позиции, помещает ленту сразу после количества блоков, указанных Offset. Элемент секции игнорируется.

TAPE_SPACE_FILEMARKS

Начиная с текущей позиции, помещает ленту сразу после количества меток файлов, указанных Offset. Элемент секции игнорируется.

TAPE_SPACE_SEQUENTIAL_FMKS

Начиная с текущей позиции, помещает ленту сразу после следующего вхождения( если таковые имеются) числа последовательных меток файлов, указанных Offset. Элемент секции игнорируется.

TAPE_SPACE_SETMARKS

Начиная с текущей позиции, помещает ленту сразу после числа меток, указанных Offset. Элемент секции игнорируется.

TAPE_SPACE_SEQUENTIAL_SMKS

Начиная с текущей позиции, помещает ленту сразу после следующего вхождения( если таковые имеются) числа последовательных меток, указанных Offset. Элемент секции игнорируется.

Partition

Указывает секцию, в которой необходимо задать положение ленты. Этот элемент должен иметь одно из следующих значений:

NOT_PARTITIONED (или ноль)
DATA_PARTITION
DIRECTORY_PARTITION

Если носитель не секционирован, этот элемент равен нулю.

Offset

Указывает смещение, тип которого зависит от значения в методе . Если указанный метод помещает ленту в адрес блока, Offset указывает смещение байтов в указанную секцию. Если указанный метод заключается в пропуске блоков, меток файлов или меток, Offset указывает число, которое необходимо пропустить. Если смещение равно нулю, лента размещается в начале раздела.

Immediate

Если задано значение TRUE, указывает, что целевое устройство должно немедленно возвращать состояние. Если задано значение FALSE, указывает, что устройство должно вернуть состояние после завершения операции.

Замечания

Обратите внимание, что диск или лента не поддерживают все значения метода.

Секции нумеруются логически от 1 до N. Однако номер секции не подразумевает физическое положение на ленте. Например, номер секции один может не находиться в начале носителя.

Если смещение указывает ряд блоков, файловых знаков или меток для размещения, положительное значение N в смещение приводит к переадресации переадресации по блокам N, меткам файлов или меткам, остановке на стороне блока, файлового знака или метки конца ленты. Нулевое значение смещения не приводит к изменению позиции. Отрицательное значение N в смещение приводит к обратному расположению в начале раздела или ленточного носителя, по блокам N, файлам или меткам, остановке на стороне начала секции блока, файла или метки.

Требования

Требование Ценность
заголовка ntddtape.h (include Ntddtape.h, Minitape.h)

См. также

IOCTL_TAPE_SET_POSITION

TapeMiniSetPosition