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,則只有當 CHANGER_REPORT_IEPORT_STATE 也設定在 GET_CHANGER_PARAMETERS 的 Features0 中時,此旗標才有效。
ELEMENT_STATUS_IMPEXP
此元素中的媒體是由運算子放置於該處。 只有當 Element 成員中的 ElementType 為 ChangerIEPort 時,此旗標才有效。
ELEMENT_STATUS_EXCEPT
元素處於異常狀態。 如需詳細資訊,請參閱 ExceptionCode 成員。
ELEMENT_STATUS_ACCESS
變更器的傳輸專案可以存取這個專案中的媒體片段。 miniclass 驅動程式會清除此旗標,指出媒體無法存取,原因如下:如果 Element 成員中的 ElementType 是 ChangerSlot,則位置不會出現在 changer (例如,包含該位置的雜誌已實際移除) 。 如果 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目標標識碼有效。 只有當 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 目標識別碼。 只有當 Element 成員中的 ElementType 為 ChangerDrive 且ELEMENT_STATUS_ID_VALID設定於 Flags 時,此成員才有效。
Lun
指定此項目位址上磁碟驅動器的 SCSI 裝置編號。 只有當 Element 成員中的 ElementType 是 ChangerDrive,且ELEMENT_STATUS_LUN_VALID是在 Flags 中設定時,這個成員才有效。
Reserved
保留供未來使用。 這個成員的值必須是零。
PrimaryVolumeID[MAX_VOLUME_ID_SIZE]
指定媒體的主要磁碟區標識碼。 如果變更程式支援條碼讀取器,而且 (安裝讀取器,如 GET_CHANGER_PARAMETERS) Features0 中的CHANGER_BAR_CODE_SCANNER_INSTALLED所指示,迷你類別驅動程式必須將 PrimaryVolumeID 設定為媒體的條碼。 如果變更程式不支援條碼讀取器,迷你類別驅動程序應該使用 ChangerQueryVolumeTags 例程搭配 ASSERT_PRIMARY 或 REPLACE_PRIMARY 動作,將 PrimaryVolumeID 設定為先前指派給媒體的值。 只有在 旗標中也設定ELEMENT_STATUS_PVOLTAG時,此成員才有效。 如果磁碟區標識碼遺失或無法讀取,迷你類別驅動程式應該清除此旗標並設定適當的錯誤狀態。 此標識元不得大於MAX_VOLUME_ID_SIZE個字節。
AlternateVolumeID[MAX_VOLUME_ID_SIZE]
指定媒體的替代磁碟區識別。 此成員僅適用於雙面媒體,且與反轉端的標識符有關。 它永遠不會代表條碼。 miniclass 驅動程式必須將 AlternateVolumeID 設定為先前使用 ChangerQueryVolumeTags 例程搭配ASSERT_ALTERNATE或REPLACE_ALTERNATE動作指派給媒體的值。 標識符不得大於MAX_VOLUME_ID_SIZE個字節,而且只有在 旗標中也設定ELEMENT_STATUS_AVOLTAG時才有效。
備註
對於大部分的項目類型,changer miniclass 驅動程式會使用 CHANGER_ELEMENT_STATUS,將指定元素的狀態回報給 changer 類別驅動程式。 不過, ChangerDrive 類型的某些元素會傳回產品信息數據。 如果裝置提供產品資訊,迷你類別驅動程式會報告 類型為 CHANGER_ELEMENT_STATUS_EX 的元素狀態數據,而不是使用 CHANGER_ELEMENT_STATUS。 miniclass 驅動程式會藉由在 結構的 Flags 成員中設定ELEMENT_STATUS_PRODUCT_DATA來指出產品資訊存在。
規格需求
需求 | 值 |
---|---|
標頭 | ntddchgr.h |