GET_CHANGER_PARAMETERS構造体 (ntddchgr.h)

チェンジャーの特性を取得します。

構文

typedef struct _GET_CHANGER_PARAMETERS {
  ULONG  Size;
  USHORT NumberTransportElements;
  USHORT NumberStorageElements;
  USHORT NumberCleanerSlots;
  USHORT NumberIEElements;
  USHORT NumberDataTransferElements;
  USHORT NumberOfDoors;
  USHORT FirstSlotNumber;
  USHORT FirstDriveNumber;
  USHORT FirstTransportNumber;
  USHORT FirstIEPortNumber;
  USHORT FirstCleanerSlotAddress;
  USHORT MagazineSize;
  ULONG  DriveCleanTimeout;
  ULONG  Features0;
  ULONG  Features1;
  UCHAR  MoveFromTransport;
  UCHAR  MoveFromSlot;
  UCHAR  MoveFromIePort;
  UCHAR  MoveFromDrive;
  UCHAR  ExchangeFromTransport;
  UCHAR  ExchangeFromSlot;
  UCHAR  ExchangeFromIePort;
  UCHAR  ExchangeFromDrive;
  UCHAR  LockUnlockCapabilities;
  UCHAR  PositionCapabilities;
  UCHAR  Reserved1[2];
  ULONG  Reserved2[2];
} GET_CHANGER_PARAMETERS, *PGET_CHANGER_PARAMETERS;

メンバーズ

Size

この構造体のサイズ (バイト単位)。 (GET_CHANGER_PARAMETERS) のサイズをに設定します。 実際には、このメンバーは、ミニクラス ドライバーによって使用されているこの構造体のバージョンを示します。

NumberTransportElements

チェンジャー内のトランスポート要素の数を示します。 SCSI チェンジャーの場合、これは要素アドレス ページで定義されます。 ほとんどのチェンジャーは 1 つのトランスポート要素を持ち、1 つまたは 2 つのピッカー メカニズムを持つことができますので、この値はほとんどの場合 1 です。 トランスポートに 2 つのピッカー メカニズムがあるチェンジャーは、ピッカーを個別に処理できないため、2 つのトランスポートを持つものとして表すことはできません。 ハイエンド メディア ライブラリは、フォールト トレランスのためにデュアルおよび複数のトランスポート要素を持つことができます。

NumberStorageElements

チェンジャー内のストレージ要素 (スロット) の数を示します。 SCSI チェンジャーの場合、これは要素アドレス ページで定義されます。 この値は、取り外し可能なマガジン内のスロットを含め、マガジンがインストールされているかどうかに関係なく、このチェンジャーで使用可能なスロットの最大数を表します。 NumberCleanerSlots が 1 の場合、NumberStorageElements は、チェンジャー内のスロットの最大数より 1 小さくなります。

NumberCleanerSlots

チェンジャー内のクリーナー カートリッジのストレージ要素 (スロット) の数を示します。 SCSI チェンジャーの場合、この値はモード センス データでは報告されないため、ミニクラス ドライバーで指定する必要があります。 ミニクラス ドライバーは、NumberCleanerSlots を 1 に設定する必要があります。これは、チェンジャーのオペレーターガイドが特定のスロットをクリーナー スロットとして識別する場合のみです。 NumberCleanerSlots が 1 の場合、firstCleanerSlotAddress は、ドライブ クリーナーを挿入するスロットの 0 から始まるアドレスを示します。 プログラムによってクリーナー カートリッジをスロットからドライブに移動することによって、チェンジャーがドライブのクリーニングをサポートしていない場合、ミニクラス ドライバー NumberCleanerSlots を 0 に設定する必要があります。 NumberCleanerSlots は 1 より大きくすることはできません。

NumberIEElements

メディアを挿入および取り出す際にチェンジャーが持つ IEport 要素の数を示します。 SCSI チェンジャーの場合、これは要素アドレス ページで定義されます。 IEport 要素は、ストレージ要素 (スロット) 領域の一部である必要はありません。また、MOVE MEDIUM SCSI コマンドを使用して、IEport とスロットの間でメディアを転送できる必要があります。 チェンジャーに真の IEport ではなくドアがある場合、ミニクラス ドライバーは NumberIEElements を 0 に設定する必要があります。

NumberDataTransferElements

チェンジャー内のデータ転送要素 (ドライブ) の数を示します。 SCSI チェンジャーの場合、これは要素アドレス ページで定義されます。 NumberStorageElementsとは異なり、スロットが実際に存在するかどうかの可能性のあるスロットの合計数を示します。NumberDataTransferElements は、チェンジャーに実際に存在するドライブの数を示します。

NumberOfDoors

チェンジャーが持つドアの数を示します。 SCSI チェンジャーの場合、この値はモード センス データでは報告されないため、ミニクラス ドライバーで指定する必要があります。 ドアは、1 つ以上のメディア (すべてではなく) へのアクセスを提供する IEport とは異なり、一度にチェンジャー内のすべてのメディアにアクセスできるようにします。 チェンジャーのドアには、物理的なフロント ドアまたはすべてのメディアを含む単一のマガジンを使用できます。 チェンジャーがメディアの挿入と取り出しに IEport のみをサポートする場合、NumberOfDoors は 0 である必要があります。

FirstSlotNumber

雑誌に印を付けるか、またはチェンジャーのオペレーター ガイドでスロット番号スキームを定義することによって、チェンジャー の最初のストレージ要素 (スロット) をエンド ユーザーに識別するためにチェンジャー ベンダーが使用する番号を示します。 FirstSlotNumber は通常 0 または 1 ですが、ベンダーによって定義されたスロット アドレスの連続する範囲の最初のアドレスにすることができます。

FirstDriveNumber

エンド ユーザーに対するチェンジャーの最初のデータ転送要素 (ドライブ) を識別するために、チェンジャー ベンダーによって使用される番号を示します。 FirstDriveNumber は通常 0 または 1 ですが、ベンダーによって定義されたドライブ アドレスの連続する範囲の最初のアドレスにすることができます。

FirstTransportNumber

チェンジャー ベンダーが、エンド ユーザーに対するチェンジャーの最初の (通常は唯一の) トランスポート要素を識別するために使用する番号を示します。 FirstTransportNumber は通常 0 または 1 ですが、ベンダーによって定義されたトランスポート アドレスの連続する範囲の最初のアドレスにすることができます。

FirstIEPortNumber

エンド ユーザーに対するチェンジャーの最初の (通常はのみ) IEport を識別するために、チェンジャー ベンダーが使用する番号を示します。 FirstIEPortNumber は通常 0 または 1 ですが、ベンダーによって定義された IEport アドレスの連続する範囲の最初のアドレスにすることができます。 NumberIEElements が 0 の場合、FirstIEPortNumber も 0 にする必要があります。

FirstCleanerSlotAddress

エンド ユーザーにドライブ クリーナー カートリッジに割り当てられている最初の (および唯一の) スロット アドレスを識別するために、チェンジャー ベンダーによって使用される番号を示します。 これは、チェンジャーの演算子ガイドでベンダーによって定義された値である必要があります。 たとえば、チェンジャーに 8 個のスロット番号が 1 ~ 8 があり、そのオペレーターガイドがスロット 8 をドライブ クリーナー スロットとして指定している場合、FirstSlotNumber は 1 になり、FirstCleanerSlotAddress は 8 になります。 同じ 8 スロットの番号が 0 から 7 の場合、FirstSlotNumber は 0 になり、FirstCleanerSlotAddress は 7 になります。 NumberCleanerSlots が 0 の場合、FirstCleanerSlotAddress は 0 である必要があります。

MagazineSize

チェンジャーのリムーバブル マガジンのスロット数を示します。 このメンバーは、CHANGER_CARTRIDGE_MAGAZINEが Features0で設定されている場合にのみ有効です。

DriveCleanTimeout

クリーニングに要する最大秒数の 2 倍を示します。 チェンジャーのドライブは、DriveCleanTimeoutで指定された半分の時間で、クリーナー カートリッジによってクリーニングする必要があります。 たとえば、ドライブが通常 300 秒 (5 分) でクリーンアップされる場合、DriveCleanTimeout を 600 に設定する必要があります。

Features0

チェンジャーでサポートされている機能を示します。 このメンバーは、1 つ以上の次の値をビットごとの ORed にまとめることができます。

CHANGER_BAR_CODE_SCANNER_INSTALLED

チェンジャーはバーコード リーダーをサポートし、リーダーがインストールされます。 ミニクラス ドライバーは、チェンジャーのバーコード リーダーが常にインストールされている場合を除き、このフラグをハードコードすることはできません。 バーコード リーダーが省略可能な場合、ミニクラス ドライバーはリーダーが実際にインストールされているかどうかを判断し、それに応じてフラグを設定する必要があります。

CHANGER_INIT_ELEM_STAT_WITH_RANGE

changer は、指定した範囲内の要素を初期化できます。 SCSI チェンジャーの場合、このフラグは、チェンジャーが INITIALIZE ELEMENT STATUS WITH RANGE SCSI コマンドをサポートしているかどうかを示します。

CHANGER_CLOSE_IEPORT

チェンジャーには IEport があり、プログラムによって IEport を取り消すことができます。

CHANGER_OPEN_IEPORT

チェンジャーには IEport があり、プログラムによって IEport を拡張できます。

CHANGER_STATUS_NON_VOLATILE

チェンジャーは、要素の状態情報に不揮発性メモリを使用します。

CHANGER_EXCHANGE_MEDIA

一度に 2 つのボリュームを処理するか、他のチェンジャー要素を使用してこの機能をエミュレートすることにより、EXCHANGE MEDIUM SCSI コマンドをサポートします。

CHANGER_CLEANER_SLOT

チェンジャーに、クリーナー カートリッジ用に指定された特定のスロットがあることを示します。 このフラグが設定されている場合、NumberCleanerSlots は 1 である必要があり、firstCleanerSlotAddress クリーナー スロットのアドレスを指定する必要があります。 このビットは、CHANGER_DRIVE_CLEANING_REQUIREDが設定され、CHANGER_CLEANER_OPS_NOT_SUPPORTEDがリセットされた場合にのみ設定できます。

CHANGER_LOCK_UNLOCK

チェンジャーのドア、IEport、またはキーパッドは、プログラムでロックまたはロック解除できます。 このフラグが設定されている場合、LockUnlockCapabilities は、ロックまたはロック解除できる要素を示します。

CHANGER_CARTRIDGE_MAGAZINE

チェンジャーは、一部またはすべてのストレージスロットにリムーバブルカートリッジマガジンを使用します。

CHANGER_MEDIUM_FLIP

チェンジャーのトランスポート要素は、反転 (回転) メディアをサポートします。 SCSI チェンジャーの場合、このフラグはトランスポート ジオメトリ パラメーター ページの回転ビットを反映します。

CHANGER_POSITION_TO_ELEMENT

チェンジャーは、トランスポートを特定の宛先に配置できます。 SCSI チェンジャーの場合、このフラグは、チェンジャーが POSITION TO ELEMENT SCSI コマンドをサポートするかどうかを示します。 このフラグが設定されている場合、PositionCapabilities は、トランスポートを配置できる要素を示します。

CHANGER_REPORT_IEPORT_STATE

チェンジャーは、メディアが IEport に存在するかどうかを報告できます。 このようなチェンジャーは、メディアの有無を検出するために IEport にセンサーを持っている必要があります。

CHANGER_STORAGE_DRIVE

チェンジャーは、独立したストレージ要素としてドライブを使用できます。つまり、メディアを読み取らずにドライブに格納できます。 SCSI チェンジャーの場合、このフラグはデバイス機能ページの DT ビットの状態を反映します。

CHANGER_STORAGE_IEPORT

チェンジャーは、独立したストレージ要素として IEport を使用できます。 SCSI チェンジャーの場合、このフラグはデバイス機能ページの I/E ビットの状態を反映します。

CHANGER_STORAGE_SLOT

チェンジャーは、メディアの独立したストレージ要素としてスロットを使用できます。 SCSI チェンジャーの場合、このフラグはデバイス機能ページの ST ビットの状態を反映します。 スロットはメディアの通常の保存場所であるため、チェンジャーはこの機能をサポートする必要があります。

CHANGER_STORAGE_TRANSPORT

チェンジャーは、トランスポートを独立したストレージ要素として使用できます。 SCSI チェンジャーの場合、このフラグは、デバイス機能ページの MT ビットの状態を反映します。

CHANGER_DRIVE_CLEANING_REQUIRED

チェンジャーのドライブが、ドライブにクリーニングが必要であることを示すセンス コードを定期的に報告する可能性があることを示します。

CHANGER_PREDISMOUNT_EJECT_REQUIRED

チェンジャーは、大容量記憶装置ドライバー (テープ、ディスク、CD-ROM など) を介して明示的なコマンドを発行して、メディアをドライブからスロットに移動する前に、ドライブからメディアを取り出す必要があります。 チェンジャーがメディアを自動的に取り出す場合、ミニクラス ドライバーはこのフラグをクリアする必要があります。

CHANGER_CLEANER_ACCESS_NOT_VALID

データトランスポート要素のCHANGER_ELEMENT_STATUS構造体のELEMENT_STATUS_ACCESS フラグは、トランスポート要素にクリーニング カートリッジが含まれている場合は無効です。

CHANGER_DRIVE_EMPTY_ON_DOOR_ACCESS

チェンジャーは、ドアからアクセスする前に、すべてのドライブを空にする (マウント解除する) 必要があります。 ミニクラス ドライバーは、チェンジャーの内部にアクセスするオペレーターによって影響を受ける可能性がある静的に機密性の高いドライブがある場合、またはオペレーターがドアを物理的に開こうとしたときに、そのドライブからメディアを自動的に取り出す場合は、このフラグを設定する必要があります。

CHANGER_VOLUME_IDENTIFICATION

チェンジャーは、ボリューム識別をサポートします。 SCSI チェンジャーの場合、このフラグは、チェンジャーが SEND VOLUME TAG および REQUEST VOLUME ELEMENT ADDRESS SCSI コマンドをサポートしているかどうかを示します。

チェンジャーはボリューム情報を検索できます。 SCSI チェンジャーの場合、このフラグは、チェンジャーが TRANSLATE の送信アクション コードを使用して SEND VOLUME TAG SCSI コマンドをサポートするかどうかを示します。

CHANGER_VOLUME_ASSERT

チェンジャーはボリューム情報を確認できます。 SCSI チェンジャーの場合、このフラグは、チェンジャーが SEND VOLUME TAG SCSI コマンドと ASSERT の送信アクション コードをサポートするかどうかを示します。

CHANGER_VOLUME_REPLACE

チェンジャーはボリューム情報を置き換えることができます。 SCSI チェンジャーの場合、このフラグは、CHANGER が SEND VOLUME TAG SCSI コマンドと REPLACE の送信アクション コードをサポートしているかどうかを示します。

CHANGER_VOLUME_UNDEFINE

チェンジャーは、既存のボリューム情報をクリアできます。 SCSI チェンジャーの場合、このフラグは、チェンジャーが SEND VOLUME TAG SCSI コマンドと UNDEFINE の送信アクション コードをサポートするかどうかを示します。

CHANGER_SERIAL_NUMBER_VALID

GetProductData によって報告されるシリアル番号は、この型のすべてのチェンジャーに対して有効で一意です。 シリアル番号は、ベンダーと製品ライン間で一意であるとは限りません。 チェンジャーのシリアル番号がこの定義に従って一意である場合、ミニクラス ドライバーは、このフラグを設定し、シリアル番号にCHANGER_PRODUCT_DATAシリアル番号を設定する必要があります。

CHANGER_PREMOUNT_EJECT_REQUIRED

チェンジャーは、マス ストレージ ドライバーを介して明示的なコマンドを発行してドライブ メカニズムを取り出す必要があります。その後、チェンジャーはメディアをスロットからドライブに移動できます。 たとえば、CD-ROM ドライブを備えたチェンジャーでは、マウント操作中にメディアをトレイに読み込むことができるように、トレイをロボットトランスポートに提示する必要がある場合があります。 チェンジャーがメカニズムを自動的に取り出す場合、ミニクラス ドライバーはこのフラグをクリアする必要があります。

CHANGER_DEVICE_REINITIALIZE_CAPABLE

changer は、明示的なコマンドに応答してトランスポート要素を再調整できます。 changer クラス ドライバーは、ChangerReinitializeUnit 呼び出して再調整を開始します。

CHANGER_KEYPAD_ENABLE_DISABLE

チェンジャー キーパッドは、プログラムで有効または無効にすることができます。

CHANGER_RESERVED_BIT

Features1 フラグを示すために予約されています。

Features1

チェンジャーでサポートされる追加機能を示します。 このメンバーは、1 つ以上の次の値をビットごとの ORed にまとめることができます。

CHANGER_PREDISMOUNT_ALIGN_TO_SLOT

メディアをドライブからスロットに移動する前に、トランスポートを宛先スロットに移動する必要があることを示します。 ビット CHANGER_PREDISMOUNT_ALIGN_TO_DRIVEが設定されている場合はリセットする必要があります。

CHANGER_PREDISMOUNT_ALIGN_TO_DRIVE

メディアをドライブからスロットに移動する前に、トランスポートをドライブに移動する必要があることを示します。 これが設定されている場合は、ビット CHANGER_PREDISMOUNT_ALIGN_TO_SLOTをリセットする必要があります。

CHANGER_CLEANER_AUTODISMOUNT

クリーニングが完了した後、チェンジャーがクリーニング カートリッジを元のスロットに自動的に戻すように指定します。 このビットは、CHANGER_DRIVE_CLEANING_REQUIREDが設定され、CHANGER_CLEANER_OPS_NOT_SUPPORTEDがリセットされた場合にのみ設定できます。

CHANGER_TRUE_EXCHANGE_CAPABLE

デバイスは、追加のチェンジャー要素を使用せずに、一度に 2 つのボリュームを操作できます。

CHANGER_SLOTS_USE_TRAYS

チェンジャーはスロットの取り外し可能なトレイを使用し、メディアをトレイに配置し、トレイを目的の位置に移動する必要があります。

CHANGER_RTN_MEDIA_TO_ORIGINAL_ADDR

ボリュームをドライブからスロットに移動するときに、ボリュームが以前にドライブに移動されたのと同じスロットに戻る必要があることを示します。

CHANGER_CLEANER_OPS_NOT_SUPPORTED

クリーニング カートリッジをダーティ ドライブに移動するために、チェンジャー ドライバーの上にあるソフトウェアによって、チェンジャーのトランスポートをプログラムでコマンド実行できないことを示します。 このビットは、CHANGER_DRIVE_CLEANING_REQUIRED ビットが設定されている場合にのみ設定できます。 このビットが設定されている場合は、CHANGER_CLEANER_AUTODISMOUNTとCHANGER_CLEANER_SLOTの両方をリセットする必要があります。

CHANGER_IEPORT_USER_CONTROL_OPEN

チェンジャーでは、閉じた IEport を手動で開く必要があります。

CHANGER_IEPORT_USER_CONTROL_CLOSE

変更ツールでは、開いている IEport を手動で閉じる必要があります。

CHANGER_MOVE_EXTENDS_IEPORT

メディアを IEport に移動するコマンドが発行されるたびに、チェンジャーによってトレイが自動的に拡張されます。

CHANGER_MOVE_RETRACTS_IEPORT

IEport からメディアを移動するコマンドが発行されるたびに、チェンジャーはトレイを自動的に取り消します。

MoveFromTransport

チェンジャーがトランスポート要素から別のトランスポート要素、ストレージ スロット、IEport、またはドライブへのメディアの移動をサポートするかどうかを示します。 SCSI チェンジャーの場合、これはデバイス機能ページで定義されます。 トランスポートは、通常、メディアを移動または交換するためのソースまたは宛先ではありません。

呼び出し元は、次のマスクを使用して、チェンジャーが特定の要素にメディアを移動できるかどうかを判断できます。

CHANGER_TO_TRANSPORT

チェンジャーは、指定された要素からトランスポートに操作を実行できます。

CHANGER_TO_SLOT

チェンジャーは、指定された要素からストレージ スロットに操作を実行できます。

CHANGER_TO_IEPORT

チェンジャーは、指定した要素から IEport に操作を実行できます。

CHANGER_TO_DRIVE

チェンジャーは、指定された要素からドライブに操作を実行できます。

MoveFromSlot

チェンジャーが、ストレージ スロットからトランスポート要素、別のストレージ スロット、IEport、またはドライブへのメディアの移動をサポートしているかどうかを示します。 呼び出し元は、MoveFromTransport で説明されているマスクを使用して、チェンジャーが移動をサポートしているかどうかを判断できます。

MoveFromIePort

チェンジャーが IEport からトランスポート要素、ストレージ スロット、別の IEport、またはドライブへのメディアの移動をサポートするかどうかを示します。 SCSI チェンジャーの場合、これはデバイス機能ページで定義されます。 呼び出し元は、moveFromTransport で説明されているマスクを使用して、チェンジャーが移動をサポートしているかどうかを判断できます。

MoveFromDrive

チェンジャーが、ドライブからトランスポート要素、ストレージ スロット、IEport、または別のドライブへのメディアの移動をサポートするかどうかを示します。 呼び出し元は、MoveFromTransport で説明されているマスクを使用して、チェンジャーが移動をサポートしているかどうかを判断できます。

ExchangeFromTransport

チェンジャーがトランスポート要素と別のトランスポート要素、ストレージ スロット、IEport、またはドライブ間のメディアの交換をサポートしているかどうかを示します。 呼び出し元は、MoveFromTransport で説明されているマスクを使用して、チェンジャーが交換をサポートしているかどうかを判断できます。

ExchangeFromSlot

チェンジャーがストレージ スロットとトランスポート要素、別のストレージ スロット、IEport、またはドライブの間のメディアの交換をサポートしているかどうかを示します。 呼び出し元は、MoveFromTransport で説明されているマスクを使用して、チェンジャーが交換をサポートしているかどうかを判断できます。

ExchangeFromIePort

チェンジャーが IEport とトランスポート要素、ストレージ スロット、別の IEport、またはドライブ間のメディアの交換をサポートしているかどうかを示します。 呼び出し元は、MoveFromTransport で説明されているマスクを使用して、チェンジャーが交換をサポートしているかどうかを判断できます。

ExchangeFromDrive

チェンジャーが、ドライブとトランスポート要素、ストレージ スロット、IEport、または別のドライブ間のメディアの交換をサポートしているかどうかを示します。 呼び出し元は、MoveFromTransport で説明されているマスクを使用して、チェンジャーが交換をサポートしているかどうかを判断できます。

LockUnlockCapabilities

プログラムによってロックまたはロック解除できるチェンジャーの要素を示します。 このメンバーは、Features0でCHANGER_LOCK_UNLOCKが設定されている場合にのみ有効です。

呼び出し元は、次のマスクを使用して、チェンジャーが特定の要素をロックまたはロック解除できるかどうかを判断できます。

LOCK_UNLOCK_IEPORT

チェンジャーは、その IEport をロックまたはロック解除できます。

LOCK_UNLOCK_DOOR

チェンジャーはドアをロックまたはロック解除できます。

LOCK_UNLOCK_KEYPAD

チェンジャーはキーパッドをロックまたはロック解除できます。

PositionCapabilities

チェンジャーがそのトランスポートを配置できる要素を示します。 呼び出し元は、moveFromTransport で説明されているマスクを使用して、チェンジャーが特定の要素へのトランスポートの配置をサポートしているかどうかを判断できます。 このメンバーは、Features0でCHANGER_POSITION_TO_ELEMENTが設定されている場合にのみ有効です。

Reserved1[2]

将来の使用のために予約されています。

Reserved2[2]

将来の使用のために予約されています。

備考

GET_CHANGER_PARAMETERS には、チェンジャーのパラメーターが含まれています。 チェンジャー ミニクラス ドライバーは、チェンジャー クラス ドライバーによって要求されたときに、この構造体を割り当てて入力します。

必要条件

要件 価値
ヘッダー ntddchgr.h

関連項目

ChangerGetParameters