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 にも設定されている場合にのみ有効です。 この値は、デバイス固有の値からの 0 から始まるオフセットである必要があります。
Flags
要素の状態を示します。次の値の 1 つ以上を指定できます。
ELEMENT_STATUS_FULL
要素には、メディアの一部が含まれています。 このフラグは、Element メンバーの ElementType が ChangerDrive、ChangerSlot、または ChangerTransport の場合に有効です。 ElementType が ChangerIEPort の場合、このフラグは、GET_CHANGER_PARAMETERSの Features0 にもCHANGER_REPORT_IEPORT_STATEが設定されている場合にのみ有効です。
ELEMENT_STATUS_IMPEXP
この要素のメディアは、 演算子によってそこに配置されました。 このフラグは、Element メンバーの ElementType が ChangerIEPort の場合にのみ有効です。
ELEMENT_STATUS_EXCEPT
要素が異常な状態です。 詳細については、 ExceptionCode メンバーを確認してください。
ELEMENT_STATUS_ACCESS
changer のトランスポート要素は、この要素内のメディアにアクセスできます。 ミニクラス ドライバーは、次のいずれかの理由でメディアにアクセスできないことを示すために、このフラグをクリアします。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
要素が異常な状態であることを示します。 このメンバーは、 フラグで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 で、ELEMENT_STATUS_ID_VALIDが Flags で設定されている場合にのみ有効です。
Lun
この要素アドレスにあるドライブの SCSI デバイス番号を指定します。 このメンバーは、Element メンバーの ElementType が ChangerDrive で、ELEMENT_STATUS_LUN_VALIDが Flags で設定されている場合にのみ有効です。
Reserved
将来利用するために予約されています。 このメンバーの値は 0 である必要があります。
PrimaryVolumeID[MAX_VOLUME_ID_SIZE]
メディアのプライマリ ボリューム識別子を指定します。 チェンジャーがバーコード リーダーをサポートし、リーダーがインストールされている場合 (GET_CHANGER_PARAMETERSの Features0 のCHANGER_BAR_CODE_SCANNER_INSTALLEDで示されているように)、ミニクラス ドライバーは PrimaryVolumeID をメディアのバーコードに設定する必要があります。 changer がバー コード リーダーをサポートしていない場合、ミニクラス ドライバーは、ASSERT_PRIMARYまたはREPLACE_PRIMARYアクションで ChangerQueryVolumeTags ルーチンを使用して、メディアに以前に割り当てられた値に PrimaryVolumeID を設定する必要があります。 このメンバーは、 フラグにもELEMENT_STATUS_PVOLTAGが設定されている場合にのみ有効です。 ボリューム識別子が見つからないか、読み取り不可能な場合、ミニクラス ドライバーはこのフラグをクリアし、適切なエラー状態を設定する必要があります。 この識別子は、MAX_VOLUME_ID_SIZE バイトを超えてはなりません。
AlternateVolumeID[MAX_VOLUME_ID_SIZE]
メディアの代替ボリューム ID を指定します。 このメンバーは両面メディアに対してのみ有効であり、反転側の ID に関連します。 バー コードを表すことはありません。 ミニクラス ドライバーは、ChangerQueryVolumeTags ルーチンを使用して、ASSERT_ALTERNATEまたはREPLACE_ALTERNATEアクションを使用して、以前にメディアに割り当てられた値に AlternateVolumeID を設定する必要があります。 識別子はMAX_VOLUME_ID_SIZE バイト以下である必要があり、 ELEMENT_STATUS_AVOLTAGが Flags にも設定されている場合にのみ有効です。
注釈
ほとんどの要素の種類では、changer ミニクラス ドライバーは、CHANGER_ELEMENT_STATUSを使用して、指定した要素の状態をチェンジャー クラス ドライバーに報告します。 ただし、 ChangerDrive 型の一部の要素では、製品情報データが返されます。 デバイスが製品情報を提供する場合、ミニクラス ドライバーは、CHANGER_ELEMENT_STATUSを使用する代わりに CHANGER_ELEMENT_STATUS_EX 型の構造体で要素の状態データを報告します。 ミニクラス ドライバーは、構造体の Flags メンバーにELEMENT_STATUS_PRODUCT_DATAを設定することによって、製品情報が存在することを示します。
要件
要件 | 値 |
---|---|
Header | ntddchgr.h |