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
元素包含一段媒体。 如果 Element 成员中的ElementType 为 ChangerDrive、ChangerSlot 或 ChangerTransport,则此标志有效。 如果 ElementType 为 ChangerIEPort,则仅当在 GET_CHANGER_PARAMETERS 的功能 0 中也设置了CHANGER_REPORT_IEPORT_STATE时,此标志才有效。
ELEMENT_STATUS_IMPEXP
此元素中的媒体由 运算符放置在那里。 仅当 Element 成员中的ElementType 为 ChangerIEPort 时,此标志才有效。
ELEMENT_STATUS_EXCEPT
元素处于异常状态。 有关详细信息,请查看 ExceptionCode 成员。
ELEMENT_STATUS_ACCESS
更换器的传输元素可以访问此元素中的介质片段。 微型类驱动程序清除此标志以指示由于以下原因之一无法访问媒体:如果 Element 成员中的ElementType 为 ChangerSlot,则槽不存在于变更器 (例如,包含该槽的杂志已被物理删除) 。 如果 ElementType 为 ChangerDrive,则驱动器已损坏或已删除。 如果 ElementType 为 ChangerIEPort,则扩展 IEport。
ELEMENT_STATUS_EXENAB
元素支持通过更换器的 IEport 导出媒体。
ELEMENT_STATUS_INENAB
元素支持通过更改器的 IEport 导入媒体。
ELEMENT_STATUS_LUN_VALID
Lun 成员中的设备编号有效。 仅当 Element 成员中的ElementType 为 ChangerDrive 时,此标志才有效。
ELEMENT_STATUS_ID_VALID
TargetID 成员中的 SCSI 目标 ID 有效。 仅当 Element 成员中的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
指示元素处于异常状态。 仅当在 Flags 中设置了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 目标 ID。 仅当 Element 成员中的ElementType 为 ChangerDrive 且在 Flags 中设置ELEMENT_STATUS_ID_VALID时,此成员才有效。
Lun
指定此元素地址处驱动器的 SCSI 设备编号。 仅当 Element 成员中的 ElementType 为 ChangerDrive 且在 Flags 中设置ELEMENT_STATUS_LUN_VALID时,此成员才有效。
Reserved
保留供将来使用。 此成员的值必须为零。
PrimaryVolumeID[MAX_VOLUME_ID_SIZE]
指定媒体的主卷标识符。 如果更改器支持条形码读取器,并且已按照 GET_CHANGER_PARAMETERS) 功能 0 中的CHANGER_BAR_CODE_SCANNER_INSTALLED指示 (安装读取器,则微型类驱动程序必须将 PrimaryVolumeID 设置为媒体的条形码。 如果更改程序不支持条形码读取器,则微型类驱动程序应将 PrimaryVolumeID 设置为之前使用 ChangerQueryVolumeTags 例程和ASSERT_PRIMARY或REPLACE_PRIMARY操作分配给媒体的值。 仅当“ 标志”中也设置了ELEMENT_STATUS_PVOLTAG时,此成员才有效。 如果卷标识符缺失或不可读,微型类驱动程序应清除此标志并设置相应的错误状态。 此标识符不能大于 MAX_VOLUME_ID_SIZE 个字节。
AlternateVolumeID[MAX_VOLUME_ID_SIZE]
指定媒体的备用卷标识。 此成员仅对双面媒体有效,并且与反面的 ID 相关。 它从不表示条形码。 微型类驱动程序必须将 AlternateVolumeID 设置为之前使用 ChangerQueryVolumeTags 例程和ASSERT_ALTERNATE或REPLACE_ALTERNATE操作分配给媒体的值。 标识符必须不超过 MAX_VOLUME_ID_SIZE 个字节,并且仅在 标志中也设置了ELEMENT_STATUS_AVOLTAG时才有效。
注解
对于大多数元素类型,变更器微类驱动程序使用 CHANGER_ELEMENT_STATUS 向变更器类驱动程序报告指定元素的状态。 但是, ChangerDrive 类型的某些元素会返回产品信息数据。 如果设备提供产品信息,微型类驱动程序将在 CHANGER_ELEMENT_STATUS_EX 类型的结构中报告元素状态数据,而不是使用 CHANGER_ELEMENT_STATUS。 微类驱动程序通过在结构的 Flags 成员中设置ELEMENT_STATUS_PRODUCT_DATA来指示产品信息存在。
要求
要求 | 值 |
---|---|
Header | ntddchgr.h |