GET_CHANGER_PARAMETERS 结构 (winioctl.h)

表示更改器的参数。

语法

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

成员

Size

此结构的大小(以字节为单位)。 调用方必须将此成员设置为 sizeof(GET_CHANGER_PARAMETERS)

NumberTransportElements

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

NumberStorageElements

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

NumberCleanerSlots

更换器中更清洁的墨盒) 槽 (存储元素的数量。 如果 NumberCleanerSlots 为 1,则 FirstCleanerSlotAddress 指示应插入驱动器清理器所在的槽的从零开始的地址。 如果更换器不支持通过以编程方式将清洁器盒从插槽移动到驱动器来清理驱动器, 则 NumberCleanerSlots 为 0。 NumberCleanerSlots 不能大于 1。

NumberIEElements

更换器) 插入/弹出端口 (插入/弹出媒体的导入/导出元素数。 对于 SCSI 更改程序,这在元素地址页中定义。 导入/导出元素不得是存储元素 (槽) 空间的一部分,并且必须使用 MOVE MEDIUM 命令在导入/导出元素和槽之间传输媒体。 如果变更器具有门,而不是真正的导入/导出元素, 则 NumberIEElements 为 0。

NumberDataTransferElements

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

NumberOfDoors

更换器中的门数。 与插入/弹出端口不同,通过门可以一次性访问更换器中的所有媒体,后者提供对一个或多个(但不是全部)媒体的访问权限。 更换器的门可以是物理前门,也可以是包含所有媒体的单个杂志。 如果更换器仅支持用于插入和弹出媒体的插入/弹出端口, 则 NumberOfDoors 为 0。

FirstSlotNumber

更换器供应商用于标识第一个存储元素 (槽) 在更换器中,通过标记杂志或在更换器运算符指南中定义槽编号方案。 FirstSlotNumber 通常为 0 或 1,但它可以是供应商定义的连续槽地址范围中的第一个地址。

FirstDriveNumber

更换器供应商用于标识第一个数据传输元素的数字, (驱动器) 更换器中的最终用户。 FirstDriveNumber 通常为 0 或 1,但它可以是供应商定义的连续驱动器地址范围中的第一个地址。

FirstTransportNumber

更换器供应商用于标识第一个 (的数字,通常只向最终用户) 更换器中的传输元素。 FirstTransportNumber 通常为 0 或 1,但它可以是供应商定义的连续传输地址范围中的第一个地址。

FirstIEPortNumber

更换器供应商用于标识第一个 (的数字,通常只向最终用户) 更换器中的插入/弹出端口。 FirstIEPortNumber 通常为 0 或 1,但它可以是供应商定义的连续插入/弹出端口地址范围内的第一个地址。 如果 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

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

DriveCleanTimeout

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

Features0

更换器支持的功能。 此成员可以是以下一个或多个值。

含义
CHANGER_BAR_CODE_SCANNER_INSTALLED
0x00000001
更换器支持条形码读取器,并且已安装读取器。
CHANGER_CARTRIDGE_MAGAZINE
0x00000100
更换器对部分或所有存储槽使用可移动的盒装盒。
CHANGER_CLEANER_ACCESS_NOT_VALID
0x00040000
当传输元素包含清洁盒时,数据传输元素 的CHANGER_ELEMENT_STATUS 结构中的ELEMENT_STATUS_ACCESS标志无效。
CHANGER_CLEANER_SLOT
0x00000040
更换器有一个为清洁器盒指定的槽。 如果设置了此标志, NumberCleanerSlots 必须为 1,FirstCleanerSlotAddress 必须指定清理器槽的地址。
CHANGER_CLOSE_IEPORT
0x00000004
更换器具有插入/弹出端口,并且可以以编程方式收回插入/弹出端口。
CHANGER_DEVICE_REINITIALIZE_CAPABLE
0x08000000
更换器可以重新校准其传输元素以响应显式命令。
CHANGER_DRIVE_CLEANING_REQUIRED
0x00010000
更换器的驱动器需要定期清洁,这必须由用户或应用程序启动,更换器可以使用其传输元素在驱动器中安装清洁器盒。
CHANGER_DRIVE_EMPTY_ON_DOOR_ACCESS
0x20000000
更换器要求所有驱动器都为空, (卸载) ,然后才能通过门访问它们。
CHANGER_EXCHANGE_MEDIA
0x00000020
更换器可以在元素之间交换媒体。 对于 SCSI 更改程序,此标志指示更改程序是否支持 EXCHANGE MEDIUM 命令。
CHANGER_INIT_ELEM_STAT_WITH_RANGE
0x00000002
更改器可以初始化指定范围内的元素。 对于 SCSI 更改程序,此标志指示更改程序是否支持 INITIALIZE ELEMENT STATUS WITH RANGE 命令。
CHANGER_KEYPAD_ENABLE_DISABLE
0x10000000
可以编程方式启用和禁用更换器键盘。
CHANGER_LOCK_UNLOCK
0x00000080
可以编程方式锁定或解锁更换器的门、插入/弹出端口或键盘。 如果设置了此标志, LockUnlockCapabilities 指示哪些元素可以锁定或解锁。
CHANGER_MEDIUM_FLIP
0x00000200
更换器的传输元素支持翻转 (旋转) 媒体。 对于 SCSI 更改器,此标志反映传输几何参数页中的旋转位。
CHANGER_OPEN_IEPORT
0x00000008
更换器具有插入/弹出端口,并且可以以编程方式扩展插入/弹出端口。
CHANGER_POSITION_TO_ELEMENT
0x00000400
更换器可以将传输定位到特定目标。 对于 SCSI 更改程序,此标志指示更改程序是否支持 POSITION TO ELEMENT 命令。 如果设置了此标志, PositionCapabilities 指示传输可以定位到的元素。
CHANGER_PREDISMOUNT_EJECT_REQUIRED
0x00020000
更换器需要通过大容量存储驱动程序 (磁带、磁盘或 CDROM 发出的显式命令,例如,) 从驱动器中弹出介质,然后更换器才能将介质从驱动器移动到槽。
CHANGER_PREMOUNT_EJECT_REQUIRED
0x00080000
更换器需要通过大容量存储驱动程序发出的显式命令来弹出驱动器机制,然后更换器才能将介质从槽移动到驱动器。 例如,具有 CD-ROM 驱动器的更换器可能需要将托盘呈现给机器人传输,以便在装载操作期间可将一块介质加载到托盘上。
CHANGER_REPORT_IEPORT_STATE
0x00000800
更换器可以报告插入/弹出端口中是否存在介质。 此类更换器必须在插入/弹出端口中具有传感器,以检测媒体是否存在。
CHANGER_SERIAL_NUMBER_VALID
0x04000000
序列号对于此类型的所有更改者都是有效且唯一的。 序列号不保证在供应商和产品系列中是唯一的。
CHANGER_STATUS_NON_VOLATILE
0x00000010
变更器将非易失性内存用于元素状态信息。
CHANGER_STORAGE_DRIVE
0x00001000
更换器可以使用驱动器作为独立的存储元素;也就是说,它可以在驱动器中存储媒体,而无需读取它。 对于 SCSI 更改程序,此标志反映设备功能页中 DT 位的状态。
CHANGER_STORAGE_IEPORT
0x00002000
更换器可以使用插入/弹出端口作为独立的存储元素。 对于 SCSI 更改器,此标志反映设备功能页中 I/E 位的状态。
CHANGER_STORAGE_SLOT
0x00004000
更换器可以使用槽作为媒体的独立存储元素。 对于 SCSI 更改程序,此标志反映设备功能页中 ST 位的状态。 槽是媒体的正常存储位置,因此更换器必须支持此功能。
CHANGER_STORAGE_TRANSPORT
0x00008000
更换器可以使用传输作为独立的存储元素。 对于 SCSI 更改程序,此标志反映设备功能页中 MT 位的状态。
CHANGER_VOLUME_ASSERT
0x00400000
更换器可以验证卷信息。 对于 SCSI 更改程序,此标志指示更改程序是否支持发送操作代码为 ASSERT 的 SEND VOLUME TAG 命令。
CHANGER_VOLUME_IDENTIFICATION
0x00100000
变更器支持卷标识。 对于 SCSI 更改程序,此标志指示更改程序是否支持 SEND VOLUME TAG 和 REQUEST VOLUME ELEMENT ADDRESS 命令。
CHANGER_VOLUME_REPLACE
0x00800000
更换器可以替换卷信息。 对于 SCSI 更改程序,此标志指示更改程序是否支持 SEND VOLUME TAG 命令,并且发送操作代码为 REPLACE。
CHANGER_VOLUME_SEARCH
0x00200000
更换器可以搜索卷信息。 对于 SCSI 更改程序,此标志指示更改程序是否支持支持 SEND VOLUME TAG 命令,并且发送操作代码为 TRANSLATE。
CHANGER_VOLUME_UNDEFINE
0x01000000
更换器可以清除现有的卷信息。 对于 SCSI 更改程序,此标志指示更改程序是否支持发送操作代码为 UNDEFINE 的 SEND VOLUME TAG 命令。

Features1

更换器支持的任何其他功能。 此成员可以是以下一个或多个值。

含义
CHANGER_CLEANER_AUTODISMOUNT
0x80000004
更换器将在清洁完成后自动将清洁盒移回其原始槽。
CHANGER_CLEANER_OPS_NOT_SUPPORTED
0x80000040
更换器不支持自动清理其元素。
CHANGER_IEPORT_USER_CONTROL_CLOSE
0x80000100
更换器要求用户手动关闭打开的插入/弹出端口。
CHANGER_IEPORT_USER_CONTROL_OPEN
0x80000080
更换器要求用户手动打开关闭的插入/弹出端口。
CHANGER_MOVE_EXTENDS_IEPORT
0x80000200
每当发出将媒体移动到插入/弹出端口的命令时,更换器都会自动扩展托盘。
CHANGER_MOVE_RETRACTS_IEPORT
0x80000400
每当发出从插入/弹出端口移动媒体的命令时,更换器都会自动收回托盘。
CHANGER_PREDISMOUNT_ALIGN_TO_DRIVE
0x80000002
更换器需要显式命令将传输元素定位到驱动器,然后才能从驱动器中弹出媒体。
CHANGER_PREDISMOUNT_ALIGN_TO_SLOT
0x80000001
更换器需要显式命令将传输元素定位到槽中,然后才能从槽中弹出媒体。
CHANGER_RTN_MEDIA_TO_ORIGINAL_ADDR
0x80000020
更换器要求媒体在移动后返回到其原始槽。
CHANGER_SLOTS_USE_TRAYS
0x80000010
更换器在其槽中使用可移动托盘,这要求将介质放置在托盘中,并将托盘移动到所需位置。
CHANGER_TRUE_EXCHANGE_CAPABLE
0x80000008
更换器可以在单个操作中在源和目标之间交换媒体。 仅当 在 Features0 中也设置了CHANGER_EXCHANGE_MEDIA时,此标志才有效。

MoveFromTransport

指示更换器是否支持将介质从传输元素移动到另一个传输元素、存储槽、插入/弹出端口或驱动器。 对于 SCSI 更改程序,这在设备功能页中定义。 传输通常不是移动或交换媒体的源或目标。

若要确定更换器是否可以将媒体移动到给定元素,请使用以下值。

含义
CHANGER_TO_DRIVE
0x08
更换器可以执行从指定元素到驱动器的操作。
CHANGER_TO_IEPORT
0x04
更换器可以执行从指定元素到插入/弹出端口的操作。
CHANGER_TO_SLOT
0x02
更换器可以执行从指定元素到存储槽的操作。
CHANGER_TO_TRANSPORT
0x01
更换器可以执行从指定元素到传输的操作。

MoveFromSlot

指示更换器是否支持将介质从存储槽移动到传输元素、另一个存储槽、插入/弹出端口或驱动器。 使用 MoveFromTransport 下所述的标志来确定更换器是否支持移动。

MoveFromIePort

指示更换器是否支持将介质从插入/弹出端口移动到传输元素、存储槽、另一个插入/弹出端口或驱动器。 对于 SCSI 更改程序,这在设备功能页中定义。 使用 MoveFromTransport 下所述的标志来确定更换器是否支持移动。

MoveFromDrive

指示更换器是否支持将介质从驱动器移动到传输元素、存储槽、插入/弹出端口或其他驱动器。 使用 MoveFromTransport 下所述的标志来确定更换器是否支持移动。

ExchangeFromTransport

指示更换器是否支持在传输元素与另一传输元素、存储槽、插入/弹出端口或驱动器之间交换介质。 使用 MoveFromTransport 下介绍的标志来确定更换器是否支持交换。

ExchangeFromSlot

指示更换器是否支持在存储槽和传输元素、另一个存储槽、插入/弹出端口或驱动器之间交换介质。 使用 MoveFromTransport 下介绍的标志来确定更换器是否支持交换。

ExchangeFromIePort

指示更换器是否支持在插入/弹出端口与传输元素、存储槽、另一个插入/弹出端口或驱动器之间交换介质。 使用 MoveFromTransport 下介绍的标志来确定更换器是否支持交换。

ExchangeFromDrive

指示更换器是否支持在驱动器与传输元素、存储槽、插入/弹出端口或其他驱动器之间交换介质。 使用 MoveFromTransport 下介绍的标志来确定更换器是否支持交换。

LockUnlockCapabilities

可以以编程方式锁定或解锁的变更器的元素。 仅当 在 Features0 中设置了CHANGER_LOCK_UNLOCK时,此成员才有效。

若要确定更换器是否可以锁定或解锁特定元素,请使用以下一个或多个值。

含义
LOCK_UNLOCK_DOOR
0x02
更换器可以锁定或解锁其门。
LOCK_UNLOCK_IEPORT
0x01
更换器可以锁定或解锁其插入/弹出端口。
LOCK_UNLOCK_KEYPAD
0x04
更换器可以锁定或解锁其键盘。

PositionCapabilities

更换器可以定位其传输的元素。 使用 MoveFromTransport 下描述的标志来确定更换器是否支持将传输定位到特定元素。 仅当 在 Features0 中设置了CHANGER_POSITION_TO_ELEMENT时,此成员才有效。

Reserved1[2]

留待将来使用。

Reserved2[2]

保留供将来使用。

要求

要求
最低受支持的客户端 Windows XP
最低受支持的服务器 Windows Server 2003
标头 winioctl.h (包括 Windows.h)

另请参阅

IOCTL_CHANGER_GET_PARAMETERS