структура 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 в элементе Element имеет значение ChangerDrive, ChangerSlot или ChangerTransport. Если ЭлементТип имеет значение ChangerIEPort, этот флаг действителен только в том случае, если CHANGER_REPORT_IEPORT_STATE также задано в разделе Features0 GET_CHANGER_PARAMETERS.

ELEMENT_STATUS_IMPEXP

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

ELEMENT_STATUS_EXCEPT

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

ELEMENT_STATUS_ACCESS

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

ELEMENT_STATUS_EXENAB

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

ELEMENT_STATUS_INENAB

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

ELEMENT_STATUS_LUN_VALID

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

ELEMENT_STATUS_ID_VALID

Допустимый идентификатор целевого объекта SCSI в элементе TargetID . Этот флаг действителен, только если ElementType в элементе Element имеет значение 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 задан в разделе Флаги.

Lun

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

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 значение, ранее назначенное носителю с помощью подпрограммы ChangerQueryVolumeTags с действием 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