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