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


структура CHANGER_ELEMENT_STATUS (ntddchgr.h)

Подпрограмма ChangerGetElementStatus возвращает сведения о состоянии в этой структуре.

Синтаксис

typedef struct _CHANGER_ELEMENT_STATUS {
  CHANGER_ELEMENT Element;
  CHANGER_ELEMENT SrcElementAddress;
  ULONG           Flags;
  ULONG           ExceptionCode;
  UCHAR           TargetId;
  UCHAR           Lun;
  USHORT          Reserved;
  UCHAR           PrimaryVolumeID[MAX_VOLUME_ID_SIZE];
  UCHAR           AlternateVolumeID[MAX_VOLUME_ID_SIZE];
} CHANGER_ELEMENT_STATUS, *PCHANGER_ELEMENT_STATUS;

Члены

Element

Указывает элемент типа CHANGER_ELEMENT, к которому относится эта структура.

SrcElementAddress

Указывает элемент типа CHANGER_ELEMENT, из которого был перемещен носитель в данный момент в этом элементе. Этот элемент действителен только в том случае, если ELEMENT_STATUS_SVALID также заданы в Флаги. Это значение должно быть отсчитывается от уникального значения устройства.

Flags

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

ELEMENT_STATUS_FULL

Элемент содержит часть носителя. Этот флаг действителен, если ElementType в элементе элементаChangerDrive, ChangerSlotили ChangerTransport. Если ElementTypeChangerIEPort, этот флаг действителен только в том случае, если CHANGER_REPORT_IEPORT_STATE также заданы Features0 GET_CHANGER_PARAMETERS.

ELEMENT_STATUS_IMPEXP

Носитель в этом элементе был помещен оператором. Этот флаг действителен, только если ElementType в элементе элементаChangerIEPort.

ELEMENT_STATUS_EXCEPT

Элемент находится в ненормальном состоянии. Дополнительные сведения см. в элементе ExceptionCode.

ELEMENT_STATUS_ACCESS

Элемент транспорта изменения может получить доступ к элементу носителя в этом элементе. Драйвер miniclass очищает этот флаг, чтобы указать, что носитель недоступен по одной из следующих причин: если ElementType в элементе элементChangerSlot, слот не присутствует в средстве изменения (например, журнал, содержащий слот, был физически удален). Если ElementTypeChangerDrive, диск поврежден или удален. Если ElementTypeChangerIEPort, iEport расширен.

ELEMENT_STATUS_EXENAB

Элемент поддерживает экспорт мультимедиа через IEport средства изменения.

ELEMENT_STATUS_INENAB

Элемент поддерживает импорт мультимедиа через IEport средства изменения.

ELEMENT_STATUS_LUN_VALID

Допустимый номер устройства в элементе Lun. Этот флаг действителен, только если ElementType в элементе элементаChangerDrive.

ELEMENT_STATUS_ID_VALID

Идентификатор целевого объекта SCSI в элементе TargetID действителен. Этот флаг действителен, только если ElementType в элементе элементаChangerDrive.

ELEMENT_STATUS_NOT_BUS

Диск по адресу, указанному Lun и TargetID находится на другой шине SCSI, отличной от самой смены.

ELEMENT_STATUS_INVERT

Носитель в элементе был перевернут. Этот флаг действителен только в том случае, если флаг ELEMENT_STATUS_SVALID также задан.

ELEMENT_STATUS_SVALID

элемент SourceElement и флаг ELEMENT_STATUS_INVERT являются допустимыми.

ELEMENT_STATUS_PVOLTAG

Основные сведения о томе в элементе PrimaryVolumeID допустимы.

ELEMENT_STATUS_AVOLTAG

Допустимы альтернативные сведения о томе в элементе AlternateVolumeID.

ExceptionCode

Указывает, что элемент находится в ненормальном состоянии. Этот элемент действителен, только если ELEMENT_STATUS_EXCEPT заданы в Флаги. ExceptionCode можно задать одно из следующих значений.

ERROR_LABEL_UNREADABLE

Средство чтения штрих-кода средства изменения не могло считывать метку штрих-кода на фрагменте носителя в этом элементе, так как носитель отсутствует, поврежден, неправильно размещен или перевернут.

ERROR_LABEL_QUESTIONABLE

Метка может быть недопустимой из-за условия внимания единицы.

ERROR_SLOT_NOT_PRESENT

Слот по этому адресу элемента в настоящее время не установлен в средстве изменения. Драйвер миникласса задает этот код для каждого слота в съемный журнал, чтобы указать, что журнал был удален.

ERROR_DRIVE_NOT_INSTALLED

Диск по адресу этого элемента отсутствует. Если переменная может продолжать работать без диска, его миникласс драйвер устанавливает ERROR_DRIVE_NOT_INSTALLED для диска.

ERROR_TRAY_MALFUNCTION

Диск на этом адресе элемента содержит область, которая должна быть расширена для загрузки или удаления носителя, и область не расширяется по мере необходимости.

ERROR_UNHANDLED_ERROR

Неизвестное условие ошибки.

TargetId

Указывает идентификатор целевого объекта SCSI диска на этом адресе элемента для SCSI-изменения. Этот элемент действителен, только если ElementType в элементе элемента задан ChangerDrive и ELEMENT_STATUS_ID_VALID установлен в Flags.

Lun

Указывает номер устройства SCSI на этом адресе элемента. Этот элемент действителен, только если ElementType в элементе элементаChangerDrive и ELEMENT_STATUS_LUN_VALID заданы в Flags.

Reserved

Зарезервировано для дальнейшего использования. Значение этого элемента должно быть равно нулю.

PrimaryVolumeID[MAX_VOLUME_ID_SIZE]

Указывает основной идентификатор тома для носителя. Если средство изменения поддерживает средство чтения штрих-кода и средство чтения устанавливается (как указано CHANGER_BAR_CODE_SCANNER_INSTALLED в Features0 GET_CHANGER_PARAMETERS), драйвер миникласса должен задать primaryVolumeID штрих-код носителя. Если средство изменения не поддерживает средство чтения штрих-кода, драйвер миникласса должен задать primaryVolumeID значение, ранее назначенное носителю с помощью подпрограммы ChangerQueryVolumeTags с действием ASSERT_PRIMARY или REPLACE_PRIMARY. Этот элемент действителен только в том случае, если ELEMENT_STATUS_PVOLTAG также заданы в Флаги. Если идентификатор тома отсутствует или недоступен, драйвер миникласса должен очистить этот флаг и задать соответствующее состояние ошибки. Этот идентификатор не должен превышать MAX_VOLUME_ID_SIZE байтов.

AlternateVolumeID[MAX_VOLUME_ID_SIZE]

Задает альтернативную идентификацию тома для носителя. Этот элемент действителен только для двухсторонного носителя и относится к идентификатору инвертированного носителя. Он никогда не представляет штрих-код. Драйвер миникласса должен задать AlternateVolumeID значением, ранее назначенным носителю , с помощью подпрограммы changerQueryVolumeTag s с действием ASSERT_ALTERNATE или REPLACE_ALTERNATE. Идентификатор должен быть не больше MAX_VOLUME_ID_SIZE байтов и действителен только в том случае, если ELEMENT_STATUS_AVOLTAG также заданы в Флаги.

Замечания

Для большинства типов элементов драйверы миникласса для смены используют CHANGER_ELEMENT_STATUS, чтобы сообщить о состоянии указанных элементов драйверу класса changer. Однако некоторые элементы типа ChangerDriveвозвращают данные о продукте. Если устройство предоставляет сведения о продукте, драйвер миникласса сообщает данные о состоянии элемента в структуре типа CHANGER_ELEMENT_STATUS_EX вместо использования CHANGER_ELEMENT_STATUS. Драйвер миникласса указывает, что сведения о продукте присутствуют, задав ELEMENT_STATUS_PRODUCT_DATA в элементе Flags элемента структуры.

Требования

Требование Ценность
заголовка ntddchgr.h

См. также

CHANGER_ELEMENT

CHANGER_ELEMENT_STATUS_EX

ChangerGetElementStatus

ChangerQueryVolumeTags

IOCTL_CHANGER_GET_ELEMENT_STATUS