次の方法で共有


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 メンバーの ElementTypeChangerDrive、ChangerSlot、または ChangerTransport の場合に有効です。 ElementTypeChangerIEPort の場合、このフラグは、GET_CHANGER_PARAMETERSの Features0 にもCHANGER_REPORT_IEPORT_STATEが設定されている場合にのみ有効です。

ELEMENT_STATUS_IMPEXP

この要素のメディアは、 演算子によってそこに配置されました。 このフラグは、Element メンバーの ElementTypeChangerIEPort の場合にのみ有効です。

ELEMENT_STATUS_EXCEPT

要素が異常な状態です。 詳細については、 ExceptionCode メンバーを確認してください。

ELEMENT_STATUS_ACCESS

changer のトランスポート要素は、この要素内のメディアにアクセスできます。 ミニクラス ドライバーは、次のいずれかの理由でメディアにアクセスできないことを示すために、このフラグをクリアします。Element メンバーの ElementTypeChangerSlot の場合、スロットはチェンジャーに存在しません (たとえば、スロットを含むマガジンが物理的に削除されています)。 ElementTypeChangerDrive の場合、ドライブが壊れているか、削除されています。 ElementTypeChangerIEPort の場合、IEport は拡張されます。

ELEMENT_STATUS_EXENAB

要素は、チェンジャーの IEport を介したメディアのエクスポートをサポートします。

ELEMENT_STATUS_INENAB

要素は、チェンジャーの IEport を介したメディアのインポートをサポートします。

ELEMENT_STATUS_LUN_VALID

Lun メンバーのデバイス番号が有効です。 このフラグは、Element メンバーの ElementTypeChangerDrive の場合にのみ有効です。

ELEMENT_STATUS_ID_VALID

TargetID メンバーの SCSI ターゲット ID が有効です。 このフラグは、Element メンバーの ElementTypeChangerDrive の場合にのみ有効です。

ELEMENT_STATUS_NOT_BUS

LunTargetID によって示されるアドレスのドライブは、チェンジャー自体とは異なる 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 メンバーの ElementTypeChangerDrive で、ELEMENT_STATUS_ID_VALIDが Flags で設定されている場合にのみ有効です。

Lun

この要素アドレスにあるドライブの SCSI デバイス番号を指定します。 このメンバーは、Element メンバーの ElementTypeChangerDrive で、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

こちらもご覧ください

CHANGER_ELEMENT

CHANGER_ELEMENT_STATUS_EX

ChangerGetElementStatus

ChangerQueryVolumeTags

IOCTL_CHANGER_GET_ELEMENT_STATUS