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

此结构的大小(以字节为单位)。 将 设置为 sizeof (GET_CHANGER_PARAMETERS) 。 实际上,此成员指示微类驱动程序使用的此结构的版本。

NumberTransportElements

指示更换器中的传输元素数。 对于 SCSI 更改器,这在元素地址页中定义。 此值几乎始终为 1,因为大多数更改器都有一个传输元素,该元素可以有一个或两个选取器机制。 在其传输中具有两个选取器机制的变更器不得表示为具有两个传输,因为无法单独寻址选取器。 高端媒体库可以具有用于容错的双重和多个传输元素。

NumberStorageElements

指示更换器中) 槽 (存储元素的数目。 对于 SCSI 更改器,这在元素地址页中定义。 此值表示此更换器可用的最大插槽数,包括可移动杂志中的插槽,无论是否安装了杂志。 如果 NumberCleanerSlots 为 1,则 NumberStorageElements 小于更换器中的最大槽数 1。

NumberCleanerSlots

指示更换器中更清洁墨盒) (槽的存储元素数。 对于 SCSI 更改器,此值不会在模式感知数据中报告,因此微类驱动程序必须提供该值。 仅当更换器的操作员指南将特定槽标识为清理槽时,微型类驱动程序才应将 NumberCleanerSlots 设置为 1。 如果 NumberCleanerSlots 为 1,则 FirstCleanerSlotAddress 指示应插入驱动器清理器的位置的从零开始的地址。 如果更换器不支持通过以编程方式将清洁器盒从插槽移动到驱动器来清理驱动器,则微型类驱动程序必须将 NumberCleanerSlots 设置为 0。 NumberCleanerSlots 不得大于 1。

NumberIEElements

指示更换器用于插入和弹出媒体的 IEport 元素数。 对于 SCSI 更改器,这在元素地址页中定义。 IEport 元素不得是存储元素 (槽) 空间的一部分,并且必须使用 MOVE MEDIUM SCSI 命令在 IEport 和槽之间传输媒体。 如果更换器有一个门,而不是真正的 IEport,则微型类驱动程序必须将 NumberIEElements 设置为 0。

NumberDataTransferElements

指示更换器中) (驱动器的数据传输元素数。 对于 SCSI 更改器,这在元素地址页中定义。 与 NumberStorageElements 不同,NumberStorageElements 指示可能槽是否实际存在的槽总数,而 NumberDataTransferElements 指示更换器中实际存在的驱动器数。

NumberOfDoors

指示更换器具有的门数。 对于 SCSI 更改器,此值不会在模式感知数据中报告,因此微类驱动程序必须提供该值。 与 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 指定为驱动器清理槽, 则 FirstSlotNumber1,FirstCleanerSlotAddress 将为 8。 如果相同的 8 个槽编号为 0 到 7, 则 FirstSlotNumber 将为 0,FirstCleanerSlotAddress 将为 7。 如果 NumberCleanerSlots 为 0, 则 FirstCleanerSlotAddress 必须为 0。

MagazineSize

指示更换器中可移动杂志中的槽数。 仅当 在 Features0 中设置了CHANGER_CARTRIDGE_MAGAZINE时,此成员才有效。

DriveCleanTimeout

指示清理所需最大秒数的两倍。 更换器的驱动器应在 DriveCleanTimeout 指定的一半时间内由其清洁盒清洁。 例如,如果驱动器通常在 300 秒 (5 分钟) 清理, 则 DriveCleanTimeout 应设置为 600。

Features0

指示更换器支持的功能。 此成员可以将以下一个或多个值按位 ORed 组合在一起。

CHANGER_BAR_CODE_SCANNER_INSTALLED

更换器支持条形码读取器,并且已安装读取器。 除非始终安装变更器的条形码读取器,否则微类驱动程序不得对此标志进行硬编码。 如果条形码读取器是可选的,则微类驱动程序必须确定是否实际安装了读取器,并相应地设置标志。

CHANGER_INIT_ELEM_STAT_WITH_RANGE

更改器可以初始化指定范围内的元素。 对于 SCSI 更换器,此标志指示更换器是否支持 INITIALIZE ELEMENT STATUS WITH RANGE SCSI 命令。

CHANGER_CLOSE_IEPORT

更换器具有 IEport,可以编程方式收回 IEport。

CHANGER_OPEN_IEPORT

更换器具有 IEport,可以编程方式扩展 IEport。

CHANGER_STATUS_NON_VOLATILE

变更器将非易失性内存用于元素状态信息。

CHANGER_EXCHANGE_MEDIA

通过一次处理两个卷或使用其他变更器元素来模拟此功能,支持 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 更换器,此标志指示更换器是否支持 支持 SEND VOLUME TAG SCSI 命令,并且发送操作代码为 TRANSLATE。

CHANGER_VOLUME_ASSERT

更换器可以验证卷信息。 对于 SCSI 更改程序,此标志指示更换器是否支持 SEND VOLUME TAG SCSI 命令,并且发送操作代码为 ASSERT。

CHANGER_VOLUME_REPLACE

更换器可以替换卷信息。 对于 SCSI 更改程序,此标志指示更换器是否支持 SEND VOLUME TAG SCSI 命令,并且发送操作代码为 REPLACE。

CHANGER_VOLUME_UNDEFINE

更换器可以清除现有的卷信息。 对于 SCSI 更换器,此标志指示更换器是否支持支持具有 UNDEFINE 发送操作代码的 SEND VOLUME TAG SCSI 命令。

CHANGER_SERIAL_NUMBER_VALID

GetProductData 报告的序列号对于此类型的所有变更器都是有效且唯一的。 不保证序列号在供应商和产品系列中是唯一的。 如果根据此定义,更换器的序列号是唯一的,则微型类驱动程序应设置此标志,并将 CHANGER_PRODUCT_DATA 中的 SerialNumber 设置为序列号。

CHANGER_PREMOUNT_EJECT_REQUIRED

更换器需要通过大容量存储驱动程序发出的显式命令来弹出驱动器机制,然后更换器才能将媒体从槽移动到驱动器。 例如,具有 CD-ROM 驱动器的更换器可能需要将托盘提供给机器人传输,以便在装载操作期间将一块介质加载到托盘上。 如果更换器自动弹出机制,微型类驱动程序应清除此标志。

CHANGER_DEVICE_REINITIALIZE_CAPABLE

更改器可以重新校准其传输元素,以响应显式命令。 changer 类驱动程序调用 ChangerReinitializeUnit 来启动重新校准。

CHANGER_KEYPAD_ENABLE_DISABLE

可以通过编程方式启用和禁用更改器键盘。

CHANGER_RESERVED_BIT

保留以指示 Features1 标志。

Features1

指示更换器支持的其他功能。 此成员可以将以下一个或多个值按位 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

设备可以一次操作两个卷,而无需使用其他变更器元素。

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 包含更换器的参数。 当变更器类驱动程序请求时,变更器微型类驱动程序分配并填充此结构。

要求

要求
Header ntddchgr.h

另请参阅

ChangerGetParameters