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 小于更改器中最大槽数。

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不同,它指示是否实际存在槽位的可能槽数,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 指定为驱动器清理器槽,则 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

指示更改程序支持的功能。 此成员可以同时具有以下一个或多个值(按位 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 必须是一个,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 更改程序,此标志指示更改程序是否支持 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

保留以指示功能 1 标志

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(s)。

LOCK_UNLOCK_DOOR

更换器可以锁定或解锁其门。

LOCK_UNLOCK_KEYPAD

更改程序可以锁定或解锁其键盘。

PositionCapabilities

指示更改器可放置其传输的元素。 调用方可以使用 moveFromTransport 下描述的掩码来确定更改程序是否支持将传输定位到特定元素。 仅当 Features0中设置CHANGER_POSITION_TO_ELEMENT时,此成员才有效。

Reserved1[2]

保留以供将来使用。

Reserved2[2]

保留以供将来使用。

言论

GET_CHANGER_PARAMETERS 包含更改器的参数。 更改程序微型类驱动程序在更改程序类驱动程序请求时分配并填充此结构。

要求

要求 价值
标头 ntddchgr.h

另请参阅

ChangerGetParameters