estructura GET_CHANGER_PARAMETERS (winioctl.h)

Representa los parámetros de un modificador.

Sintaxis

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;

Miembros

Size

Tamaño de esta estructura, en bytes. El llamador debe establecer este miembro en sizeof(GET_CHANGER_PARAMETERS).

NumberTransportElements

Número de elementos de transporte en el modificador. Para un modificador SCSI, se define en la página de direcciones del elemento. Este valor es casi siempre 1, ya que la mayoría de los modificadores tienen un único elemento de transporte con uno o dos mecanismos de selector. Un cambiador que tenga dos mecanismos de selector en su transporte no debe representarse como tener dos transportes, ya que los selectores no son direccionables individualmente. Las bibliotecas multimedia de gama alta pueden tener elementos de transporte duales y múltiples para la tolerancia a errores.

NumberStorageElements

Número de elementos de almacenamiento (ranuras) en el modificador. Para un modificador SCSI, se define en la página de direcciones del elemento. Este valor representa el número máximo de ranuras disponibles para este modificador, incluidos los de revistas extraíbles, independientemente de si se instalan o no las revistas. Si NumberCleanerSlots es 1, NumberStorageElements es 1 menor que el número máximo de ranuras del modificador.

NumberCleanerSlots

Número de elementos de almacenamiento (ranuras) para cartuchos más limpios en el cambiador. Si NumberCleanerSlots es 1, FirstCleanerSlotAddress indica la dirección de base cero de la ranura en la que se debe insertar un limpiador de unidades. Si el cambiador no admite la limpieza de unidades moviendo mediante programación el cartucho más limpio de su ranura a una unidad, NumberCleanerSlots es 0. NumberCleanerSlots no puede ser mayor que 1.

NumberIEElements

El número de elementos import/export (puertos insert/eject) que tiene el modificador para insertar y expulsar medios. Para un modificador SCSI, se define en la página de direcciones del elemento. Un elemento import/export no debe formar parte del espacio del elemento de almacenamiento (ranura) y debe ser posible transportar medios entre el elemento import/export y una ranura mediante un comando MOVE MEDIUM. Si el cambiador tiene una puerta y no un elemento import/export verdadero, NumberIEElements es 0.

NumberDataTransferElements

Número de elementos de transferencia de datos (unidades) en el modificador. Para un modificador SCSI, se define en la página de direcciones del elemento. A diferencia de NumberStorageElements, que indica el número total de ranuras posibles tanto si las ranuras están presentes realmente, NumberDataTransferElements indica el número de unidades que realmente están presentes en el modificador.

NumberOfDoors

Número de puertas del cambiador. Una puerta proporciona acceso a todos los medios del cambiador a la vez, a diferencia de un puerto de inserción o expulsión, que proporciona acceso a uno o varios medios, pero no a todos. La puerta de un cambiador puede ser una puerta frontal física o una sola revista que contenga todos los medios. Si un modificador solo admite un puerto de inserción o expulsión para insertar y expulsar medios, NumberOfDoors es 0.

FirstSlotNumber

Número utilizado por el proveedor del modificador para identificar el primer elemento de almacenamiento (ranura) del modificador al usuario final, ya sea marcando una revista o definiendo un esquema de numeración de ranuras en la guía de operadores del modificador. FirstSlotNumber suele ser 0 o 1, pero puede ser la primera dirección en un intervalo consecutivo de direcciones de ranura definidas por el proveedor.

FirstDriveNumber

Número utilizado por el proveedor del modificador para identificar el primer elemento de transferencia de datos (unidad) del modificador al usuario final. FirstDriveNumber suele ser 0 o 1, pero puede ser la primera dirección en un intervalo consecutivo de direcciones de unidad definidas por el proveedor.

FirstTransportNumber

Número utilizado por el proveedor del modificador para identificar el primer elemento de transporte (y normalmente solo) del modificador al usuario final. FirstTransportNumber suele ser 0 o 1, pero puede ser la primera dirección en un intervalo consecutivo de direcciones de transporte definidas por el proveedor.

FirstIEPortNumber

Número utilizado por el proveedor del modificador para identificar el primer puerto de inserción o expulsión (y normalmente solo) en el modificador al usuario final. FirstIEPortNumber suele ser 0 o 1, pero puede ser la primera dirección en un intervalo consecutivo de direcciones de puerto de inserción/expulsión definidas por el proveedor. Si NumberIEElements es 0, FirstIEPortNumber también debe ser 0.

FirstCleanerSlotAddress

Número utilizado por el proveedor del modificador para identificar la primera dirección de ranura (y solo) asignada a un cartucho más limpio de unidad al usuario final. Debe ser el valor definido por el proveedor en la guía de operadores del modificador. Por ejemplo, si un cambiador tiene 8 ranuras numeradas de 1 a 8 y la guía de su operador designa la ranura 8 como ranura más limpia, FirstSlotNumber sería 1 y FirstCleanerSlotAddress sería 8. Si se numeraron entre 0 y 7 las mismas ranuras, FirstSlotNumber sería 0 y FirstCleanerSlotAddress sería 7. Si NumberCleanerSlots es 0, FirstCleanerSlotAddress debe ser 0.

MagazineSize

Número de ranuras en las revistas extraíbles del cambiador. Este miembro solo es válido si CHANGER_CARTRIDGE_MAGAZINE está establecido en Features0.

DriveCleanTimeout

Se espera que el número máximo de segundos que tarde una limpieza. Las unidades del cambiador deben limpiarse con su cartucho más limpio a la mitad del tiempo especificado por DriveCleanTimeout. Por ejemplo, si una unidad se limpia normalmente en 300 segundos (5 minutos), DriveCleanTimeout debe establecerse en 600.

Features0

Las características admitidas por el modificador. Este miembro puede ser uno o varios de los valores siguientes.

Valor Significado
CHANGER_BAR_CODE_SCANNER_INSTALLED
0x00000001
El modificador admite un lector de código de barras y el lector está instalado.
CHANGER_CARTRIDGE_MAGAZINE
0x00000100
El cambiador utiliza cargadores extraíbles de cartuchos para algunas o todas las ranuras de almacenamiento.
CHANGER_CLEANER_ACCESS_NOT_VALID
0x00040000
La marca ELEMENT_STATUS_ACCESS de una estructura de CHANGER_ELEMENT_STATUS para un elemento de transporte de datos no es válida cuando el elemento de transporte contiene un cartucho de limpieza.
CHANGER_CLEANER_SLOT
0x00000040
El cambiador tiene una ranura designada para un cartucho más limpio. Si se establece esta marca, NumberCleanerSlots debe ser 1 y FirstCleanerSlotAddress debe especificar la dirección de la ranura más limpia.
CHANGER_CLOSE_IEPORT
0x00000004
El modificador tiene un puerto de inserción/expulsión y puede retirar el puerto de inserción/expulsión mediante programación.
CHANGER_DEVICE_REINITIALIZE_CAPABLE
0x08000000
El modificador puede volver alibrar su elemento de transporte en respuesta a un comando explícito.
CHANGER_DRIVE_CLEANING_REQUIRED
0x00010000
Las unidades del cambiador requieren una limpieza periódica, que debe iniciar el usuario o una aplicación, y el cambiador puede usar su elemento de transporte para montar un cartucho más limpio en una unidad.
CHANGER_DRIVE_EMPTY_ON_DOOR_ACCESS
0x20000000
El cambiador requiere que todas las unidades estén vacías (desmontadas) para poder acceder a ellas a través de su puerta.
CHANGER_EXCHANGE_MEDIA
0x00000020
El modificador puede intercambiar elementos multimedia entre elementos. Para un modificador SCSI, esta marca indica si el modificador admite el comando EXCHANGE MEDIUM.
CHANGER_INIT_ELEM_STAT_WITH_RANGE
0x00000002
El modificador puede inicializar elementos dentro de un intervalo especificado. Para un modificador SCSI, esta marca indica si el modificador admite el comando INITIALIZE ELEMENT STATUS WITH RANGE.
CHANGER_KEYPAD_ENABLE_DISABLE
0x10000000
El teclado del modificador se puede habilitar y deshabilitar mediante programación.
CHANGER_LOCK_UNLOCK
0x00000080
La puerta del cambiador, el puerto de inserción/expulsión o el teclado se pueden bloquear o desbloquear mediante programación. Si se establece esta marca, LockUnlockCapabilities indica qué elementos se pueden bloquear o desbloquear.
CHANGER_MEDIUM_FLIP
0x00000200
El elemento de transporte del modificador admite el volteo (rotación). Para un modificador SCSI, esta marca refleja el bit de rotación en la página de parámetros de geometría de transporte.
CHANGER_OPEN_IEPORT
0x00000008
El modificador tiene un puerto de inserción/expulsión y puede extender el puerto de inserción/expulsión mediante programación.
CHANGER_POSITION_TO_ELEMENT
0x00000400
El modificador puede colocar el transporte en un destino determinado. Para un modificador SCSI, esta marca indica si el modificador admite el comando POSITION TO ELEMENT. Si se establece esta marca, PositionCapabilities indica los elementos a los que se puede colocar el transporte.
CHANGER_PREDISMOUNT_EJECT_REQUIRED
0x00020000
El modificador requiere un comando explícito emitido a través de un controlador de almacenamiento masivo (cinta, disco o CDROM, por ejemplo) para expulsar medios de una unidad antes de que el modificador pueda mover el medio de una unidad a una ranura.
CHANGER_PREMOUNT_EJECT_REQUIRED
0x00080000
El modificador requiere un comando explícito emitido a través de un controlador de almacenamiento masivo para expulsar un mecanismo de unidad antes de que el cambiador pueda mover medios de una ranura a la unidad. Por ejemplo, un cambiador con unidades de CD-ROM podría requerir que la bandeja se presente al transporte robotizado para que un fragmento de soporte pueda cargarse en la bandeja durante una operación de montaje.
CHANGER_REPORT_IEPORT_STATE
0x00000800
El modificador puede notificar si los medios están presentes en el puerto de inserción o expulsión. Este modificador debe tener un sensor en el puerto de inserción o expulsión para detectar la presencia o ausencia de medios.
CHANGER_SERIAL_NUMBER_VALID
0x04000000
El número de serie es válido y único para todos los modificadores de este tipo. No se garantiza que los números de serie sean únicos en las líneas de proveedor y producto.
CHANGER_STATUS_NON_VOLATILE
0x00000010
El modificador usa memoria no volátil para la información de estado del elemento.
CHANGER_STORAGE_DRIVE
0x00001000
El modificador puede usar una unidad como elemento de almacenamiento independiente; es decir, puede almacenar elementos multimedia en la unidad sin leerlo. Para un modificador SCSI, esta marca refleja el estado del bit DT en la página de funcionalidades del dispositivo.
CHANGER_STORAGE_IEPORT
0x00002000
El modificador puede usar un puerto de inserción o expulsión como un elemento de almacenamiento independiente. En el caso de un modificador SCSI, esta marca refleja el estado del bit de E/S en la página de funcionalidades del dispositivo.
CHANGER_STORAGE_SLOT
0x00004000
El modificador puede usar una ranura como un elemento de almacenamiento independiente para los medios. En el caso de un modificador SCSI, esta marca refleja el estado del bit st en la página de funcionalidades del dispositivo. Las ranuras son la ubicación de almacenamiento normal de los medios, por lo que el cambiador debe admitir esta funcionalidad.
CHANGER_STORAGE_TRANSPORT
0x00008000
El modificador puede usar un transporte como elemento de almacenamiento independiente. Para un modificador SCSI, esta marca refleja el estado del bit mt en la página de funcionalidades del dispositivo.
CHANGER_VOLUME_ASSERT
0x00400000
El modificador puede comprobar la información del volumen. Para un modificador SCSI, esta marca indica si el modificador admite el comando SEND VOLUME TAG con un código de acción de envío de ASSERT.
CHANGER_VOLUME_IDENTIFICATION
0x00100000
El modificador admite la identificación del volumen. Para un modificador SCSI, esta marca indica si el modificador admite los comandos SEND VOLUME TAG y REQUEST VOLUME ELEMENT ADDRESS.
CHANGER_VOLUME_REPLACE
0x00800000
El modificador puede reemplazar la información del volumen. Para un modificador SCSI, esta marca indica si el modificador admite el comando SEND VOLUME TAG con un código de acción de envío de REPLACE.
CHANGER_VOLUME_SEARCH
0x00200000
El modificador puede buscar información de volumen. En el caso de un modificador SCSI, esta marca indica si el modificador admite el comando SEND VOLUME TAG con un código de acción de envío de TRANSLATE.
CHANGER_VOLUME_UNDEFINE
0x01000000
El modificador puede borrar la información del volumen existente. Para un modificador SCSI, esta marca indica si el modificador admite el comando SEND VOLUME TAG con un código de acción de envío de UNDEFINE.

Features1

Cualquier característica adicional compatible con el modificador. Este miembro puede ser uno o varios de los valores siguientes.

Valor Significado
CHANGER_CLEANER_AUTODISMOUNT
0x80000004
El cambiador moverá el cartucho de limpieza a su ranura original automáticamente una vez finalizada la limpieza.
CHANGER_CLEANER_OPS_NOT_SUPPORTED
0x80000040
El modificador no admite la limpieza automática de sus elementos.
CHANGER_IEPORT_USER_CONTROL_CLOSE
0x80000100
El modificador requiere que el usuario cierre manualmente un puerto de inserción o expulsión abierto.
CHANGER_IEPORT_USER_CONTROL_OPEN
0x80000080
El modificador requiere que el usuario abra manualmente un puerto de inserción o expulsión cerrado.
CHANGER_MOVE_EXTENDS_IEPORT
0x80000200
El modificador extenderá la bandeja automáticamente cada vez que se emita un comando para mover elementos multimedia a un puerto de inserción o expulsión.
CHANGER_MOVE_RETRACTS_IEPORT
0x80000400
El modificador retirará la bandeja automáticamente cada vez que se emita un comando para mover medios desde un puerto de inserción o expulsión.
CHANGER_PREDISMOUNT_ALIGN_TO_DRIVE
0x80000002
El modificador requiere un comando explícito para colocar el elemento de transporte en una unidad antes de que pueda expulsar medios de la unidad.
CHANGER_PREDISMOUNT_ALIGN_TO_SLOT
0x80000001
El modificador requiere un comando explícito para colocar el elemento de transporte en una ranura antes de que pueda expulsar medios de la ranura.
CHANGER_RTN_MEDIA_TO_ORIGINAL_ADDR
0x80000020
El modificador requiere que el medio se devuelva a su ranura original después de que se haya movido.
CHANGER_SLOTS_USE_TRAYS
0x80000010
El cambiador utiliza bandejas extraíbles en sus ranuras, que requieren que el medio se coloque en una bandeja y la bandeja se mueva a la posición deseada.
CHANGER_TRUE_EXCHANGE_CAPABLE
0x80000008
El modificador puede intercambiar medios entre un origen y un destino en una sola operación. Esta marca solo es válida si CHANGER_EXCHANGE_MEDIA también se establece en Features0.

MoveFromTransport

Indica si el modificador admite mover un elemento multimedia de un elemento de transporte a otro elemento de transporte, una ranura de almacenamiento, un puerto de inserción o expulsión o una unidad. En el caso de un modificador SCSI, se define en la página de funcionalidades del dispositivo. El transporte no suele ser el origen o destino para mover o intercambiar medios.

Para determinar si el modificador puede mover elementos multimedia a un elemento determinado, use los valores siguientes.

Valor Significado
CHANGER_TO_DRIVE
0x08
El modificador puede llevar a cabo la operación desde el elemento especificado a una unidad.
CHANGER_TO_IEPORT
0x04
El modificador puede llevar a cabo la operación desde el elemento especificado hasta un puerto de inserción o expulsión.
CHANGER_TO_SLOT
0x02
El cambiador puede llevar a cabo la operación desde el elemento especificado a una ranura de almacenamiento.
CHANGER_TO_TRANSPORT
0x01
El cambiador puede llevar a cabo la operación desde el elemento especificado hasta un transporte.

MoveFromSlot

Indica si el modificador admite mover medios de una ranura de almacenamiento a un elemento de transporte, otra ranura de almacenamiento, un puerto de inserción o expulsión o una unidad. Use las marcas descritas en MoveFromTransport para determinar si el modificador admite el movimiento.

MoveFromIePort

Indica si el modificador admite el movimiento medio desde un puerto de inserción/expulsión a un elemento de transporte, una ranura de almacenamiento, otro puerto de inserción/expulsión o una unidad. En el caso de un modificador SCSI, se define en la página de funcionalidades del dispositivo. Use las marcas descritas en MoveFromTransport para determinar si el modificador admite el movimiento.

MoveFromDrive

Indica si el modificador admite mover medios de una unidad a un elemento de transporte, una ranura de almacenamiento, un puerto de inserción o expulsión u otra unidad. Use las marcas descritas en MoveFromTransport para determinar si el modificador admite el movimiento.

ExchangeFromTransport

Indica si el modificador admite el intercambio de medios entre un elemento de transporte y otro elemento de transporte, una ranura de almacenamiento, un puerto de inserción o expulsión o una unidad. Use las marcas descritas en MoveFromTransport para determinar si el modificador admite el intercambio.

ExchangeFromSlot

Indica si el modificador admite el intercambio de medios entre una ranura de almacenamiento y un elemento de transporte, otra ranura de almacenamiento, un puerto de inserción o expulsión o una unidad. Use las marcas descritas en MoveFromTransport para determinar si el modificador admite el intercambio.

ExchangeFromIePort

Indica si el modificador admite el intercambio de medios entre un puerto de inserción/expulsión y un elemento de transporte, una ranura de almacenamiento, otro puerto de inserción/expulsión o una unidad. Use las marcas descritas en MoveFromTransport para determinar si el modificador admite el intercambio.

ExchangeFromDrive

Indica si el modificador admite el intercambio de medios entre una unidad y un elemento de transporte, una ranura de almacenamiento, un puerto de inserción o expulsión u otra unidad. Use las marcas descritas en MoveFromTransport para determinar si el modificador admite el intercambio.

LockUnlockCapabilities

Elementos de un modificador que se pueden bloquear o desbloquear mediante programación. Este miembro solo es válido si CHANGER_LOCK_UNLOCK está establecido en Features0.

Para determinar si el modificador puede bloquear o desbloquear un elemento determinado, use uno o varios de los valores siguientes.

Valor Significado
LOCK_UNLOCK_DOOR
0x02
El cambiador puede bloquear o desbloquear su puerta.
LOCK_UNLOCK_IEPORT
0x01
El cambiador puede bloquear o desbloquear su puerto de inserción o expulsión.
LOCK_UNLOCK_KEYPAD
0x04
El cambiador puede bloquear o desbloquear su teclado.

PositionCapabilities

Elementos a los que un modificador puede colocar su transporte. Use las marcas descritas en MoveFromTransport para determinar si el modificador admite la colocación del transporte en un elemento determinado. Este miembro solo es válido si CHANGER_POSITION_TO_ELEMENT está establecido en Features0.

Reserved1[2]

Reservado para un uso futuro.

Reserved2[2]

Reservado para uso futuro.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP
Servidor mínimo compatible Windows Server 2003
Encabezado winioctl.h (incluye Windows.h)

Consulte también

IOCTL_CHANGER_GET_PARAMETERS