структура TAPE_SET_POSITION (minitape.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, остановке на стороне начала секции блока, метки файла или метки.
Требования
Требование | Значение |
---|---|
Заголовок | minitape.h (включая Ntddtape.h, Minitape.h) |