Compartilhar via


estrutura GET_CHANGER_PARAMETERS (winioctl.h)

Representa os parâmetros de um alterador.

Sintaxe

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;

Membros

Size

O tamanho dessa estrutura, em bytes. O chamador deve definir esse membro como sizeof(GET_CHANGER_PARAMETERS).

NumberTransportElements

O número de elementos de transporte no alterador. Para um alterador SCSI, isso é definido na página de endereço do elemento. Esse valor é quase sempre 1, porque a maioria dos alteradores tem um único elemento de transporte com um ou dois mecanismos de seletor. Um alterador que tem dois mecanismos de seletor em seu transporte não deve ser representado como tendo dois transportes, pois os seletores não são individualmente endereçáveis. Bibliotecas de mídia high-end podem ter elementos de transporte duplos e múltiplos para tolerância a falhas.

NumberStorageElements

O número de elementos de armazenamento (slots) no alterador. Para um alterador SCSI, isso é definido na página de endereço do elemento. Esse valor representa o número máximo de slots disponíveis para esse alterador, incluindo aqueles em revistas removíveis, independentemente de as revistas estarem instaladas ou não. Se NumberCleanerSlots for 1, NumberStorageElements será 1 menor que o número máximo de slots no alterador.

NumberCleanerSlots

O número de elementos de armazenamento (slots) para cartuchos mais limpos no alterador. Se NumberCleanerSlots for 1, FirstCleanerSlotAddress indicará o endereço baseado em zero do slot no qual um limpador de unidade deve ser inserido. Se o alterador não der suporte à limpeza de unidade movendo programaticamente o cartucho mais limpo de seu slot para uma unidade, NumberCleanerSlots será 0. NumberCleanerSlots não pode ser maior que 1.

NumberIEElements

O número de elementos de importação/exportação (portas de inserção/ejeção) que o alterador tem para inserir e ejetar mídia. Para um alterador SCSI, isso é definido na página de endereço do elemento. Um elemento de importação/exportação não deve fazer parte do espaço do elemento de armazenamento (slot) e deve ser possível transportar mídia entre o elemento de importação/exportação e um slot usando um comando MOVE MEDIUM. Se o alterador tiver uma porta e não um elemento de importação/exportação verdadeiro, NumberIEElements será 0.

NumberDataTransferElements

O número de elementos de transferência de dados (unidades) no alterador. Para um alterador SCSI, isso é definido na página de endereço do elemento. Ao contrário de NumberStorageElements, que indica o número total de slots possíveis se os slots estão realmente presentes, NumberDataTransferElements indica o número de unidades que estão realmente presentes no alterador.

NumberOfDoors

O número de portas no trocador. Uma porta fornece acesso a todas as mídias no alterador de uma só vez, ao contrário de uma porta de inserção/ejeção, que fornece acesso a uma ou mais mídias, mas não a todas. A porta de um divisor pode ser uma porta da frente física ou uma única revista que contém toda a mídia. Se um alterador der suporte apenas a uma porta de inserção/ejetação para inserir e ejetar mídia, NumberOfDoors será 0.

FirstSlotNumber

O número usado pelo fornecedor do alterador para identificar o primeiro elemento de armazenamento (slot) no alterador para o usuário final, marcando uma revista ou definindo um esquema de numeração de slot no guia de operadores do alterador. FirstSlotNumber normalmente é 0 ou 1, mas pode ser o primeiro endereço em um intervalo consecutivo de endereços de slot definidos pelo fornecedor.

FirstDriveNumber

O número usado pelo fornecedor do alterador para identificar o primeiro elemento de transferência de dados (unidade) no alterador para o usuário final. FirstDriveNumber normalmente é 0 ou 1, mas pode ser o primeiro endereço em um intervalo consecutivo de endereços de unidade definidos pelo fornecedor.

FirstTransportNumber

O número usado pelo fornecedor do alterador para identificar o primeiro (e geralmente apenas) elemento de transporte no alterador para o usuário final. FirstTransportNumber normalmente é 0 ou 1, mas pode ser o primeiro endereço em um intervalo consecutivo de endereços de transporte definidos pelo fornecedor.

FirstIEPortNumber

O número usado pelo fornecedor do alterador para identificar a primeira (e geralmente apenas) porta de inserção/ejeção no alterador para o usuário final. FirstIEPortNumber normalmente é 0 ou 1, mas pode ser o primeiro endereço em um intervalo consecutivo de endereços de porta de inserção/ejeção definidos pelo fornecedor. Se NumberIEElements for 0, FirstIEPortNumber também deverá ser 0.

FirstCleanerSlotAddress

O número usado pelo fornecedor do alterador para identificar o primeiro (e único) endereço de slot atribuído a um cartucho de limpador de unidade para o usuário final. Esse deve ser o valor definido pelo fornecedor no guia de operadores do alterador. Por exemplo, se um alterador tiver 8 slots numerados de 1 a 8 e o guia do operador designar o slot 8 como o slot de limpeza de unidade, FirstSlotNumber será 1 e FirstCleanerSlotAddress será 8. Se os mesmos 8 slots fossem numerados de 0 a 7, FirstSlotNumber seria 0 e FirstCleanerSlotAddress seria 7. Se NumberCleanerSlots for 0, FirstCleanerSlotAddress deverá ser 0.

MagazineSize

O número de slots nas revistas removíveis no alterador. Esse membro só será válido se CHANGER_CARTRIDGE_MAGAZINE estiver definido em Recursos0.

DriveCleanTimeout

O dobro do número máximo de segundos que uma limpeza deve levar. As unidades do modificador devem ser limpas por seu cartucho mais limpo na metade do tempo especificado por DriveCleanTimeout. Por exemplo, se uma unidade normalmente for limpa em 300 segundos (5 minutos), DriveCleanTimeout deverá ser definido como 600.

Features0

Os recursos compatíveis com o alterador. Esse membro pode ser um ou mais dos valores a seguir.

Valor Significado
CHANGER_BAR_CODE_SCANNER_INSTALLED
0x00000001
O alterador dá suporte a um leitor de código de barras e o leitor está instalado.
CHANGER_CARTRIDGE_MAGAZINE
0x00000100
O alterador usa revistas de cartucho removíveis para alguns ou todos os slots de armazenamento.
CHANGER_CLEANER_ACCESS_NOT_VALID
0x00040000
O sinalizador ELEMENT_STATUS_ACCESS em uma estrutura CHANGER_ELEMENT_STATUS para um elemento de transporte de dados é inválido quando o elemento de transporte contém um cartucho de limpeza.
CHANGER_CLEANER_SLOT
0x00000040
O trocador tem um slot designado para um cartucho mais limpo. Se esse sinalizador for definido, NumberCleanerSlots deverá ser 1 e FirstCleanerSlotAddress deverá especificar o endereço do slot mais limpo.
CHANGER_CLOSE_IEPORT
0x00000004
O alterador tem uma porta de inserção/ejetação e pode retirar a porta de inserção/ejetação programaticamente.
CHANGER_DEVICE_REINITIALIZE_CAPABLE
0x08000000
O alterador pode recalibrar seu elemento de transporte em resposta a um comando explícito.
CHANGER_DRIVE_CLEANING_REQUIRED
0x00010000
As unidades do alterador exigem limpeza periódica, que deve ser iniciada pelo usuário ou por um aplicativo, e o alterador pode usar seu elemento de transporte para montar um cartucho mais limpo em uma unidade.
CHANGER_DRIVE_EMPTY_ON_DOOR_ACCESS
0x20000000
O alterador exige que todas as unidades estejam vazias (desmontadas) antes que possam ser acessadas por meio de sua porta.
CHANGER_EXCHANGE_MEDIA
0x00000020
O alterador pode trocar mídia entre elementos. Para um alterador SCSI, esse sinalizador indica se o alterador dá suporte ao comando EXCHANGE MEDIUM.
CHANGER_INIT_ELEM_STAT_WITH_RANGE
0x00000002
O alterador pode inicializar elementos dentro de um intervalo especificado. Para um alterador SCSI, esse sinalizador indica se o alterador dá suporte ao comando INITIALIZE ELEMENT STATUS WITH RANGE.
CHANGER_KEYPAD_ENABLE_DISABLE
0x10000000
O teclado do alterador pode ser habilitado e desabilitado programaticamente.
CHANGER_LOCK_UNLOCK
0x00000080
A porta do alterador, a porta de inserção/ejeção ou o teclado podem ser bloqueados ou desbloqueados programaticamente. Se esse sinalizador estiver definido, LockUnlockCapabilities indicará quais elementos podem ser bloqueados ou desbloqueados.
CHANGER_MEDIUM_FLIP
0x00000200
O elemento de transporte do alterador dá suporte à mídia de inversão (rotação). Para um alterador SCSI, esse sinalizador reflete o bit de rotação na página de parâmetros de geometria de transporte.
CHANGER_OPEN_IEPORT
0x00000008
O alterador tem uma porta de inserção/ejeção e pode estender a porta de inserção/ejeção programaticamente.
CHANGER_POSITION_TO_ELEMENT
0x00000400
O alterador pode posicionar o transporte para um destino específico. Para um alterador SCSI, esse sinalizador indica se o alterador dá suporte ao comando POSITION TO ELEMENT. Se esse sinalizador estiver definido, PositionCapabilities indicará os elementos aos quais o transporte pode ser posicionado.
CHANGER_PREDISMOUNT_EJECT_REQUIRED
0x00020000
O alterador requer um comando explícito emitido por meio de um driver de armazenamento em massa (fita, disco ou CDROM, por exemplo) para ejetar a mídia de uma unidade antes que o alterador possa mover a mídia de uma unidade para um slot.
CHANGER_PREMOUNT_EJECT_REQUIRED
0x00080000
O alterador requer um comando explícito emitido por meio de um driver de armazenamento em massa para ejetar um mecanismo de unidade antes que o alterador possa mover a mídia de um slot para a unidade. Por exemplo, um modificador com unidades CD-ROM pode exigir que a bandeja seja apresentada ao transporte robótico para que um pedaço de mídia possa ser carregado na bandeja durante uma operação de montagem.
CHANGER_REPORT_IEPORT_STATE
0x00000800
O alterador pode relatar se a mídia está presente na porta de inserção/ejeção. Esse alterador deve ter um sensor na porta de inserção/ejeção para detectar a presença ou ausência de mídia.
CHANGER_SERIAL_NUMBER_VALID
0x04000000
O número de série é válido e exclusivo para todos os alteradores desse tipo. Não há garantia de que os números de série sejam exclusivos entre as linhas de fornecedor e produto.
CHANGER_STATUS_NON_VOLATILE
0x00000010
O alterador usa memória nãovolatile para informações de status elemento.
CHANGER_STORAGE_DRIVE
0x00001000
O alterador pode usar uma unidade como um elemento de armazenamento independente; ou seja, ele pode armazenar mídia na unidade sem lê-la. Para um alterador SCSI, esse sinalizador reflete o estado do bit DT na página de recursos do dispositivo.
CHANGER_STORAGE_IEPORT
0x00002000
O alterador pode usar uma porta de inserção/ejeção como um elemento de armazenamento independente. Para um alterador SCSI, esse sinalizador reflete o estado do bit de E/S na página de recursos do dispositivo.
CHANGER_STORAGE_SLOT
0x00004000
O alterador pode usar um slot como um elemento de armazenamento independente para mídia. Para um alterador SCSI, esse sinalizador reflete o estado do bit ST na página de recursos do dispositivo. Os slots são o local de armazenamento normal para mídia, portanto, o alterador deve dar suporte a essa funcionalidade.
CHANGER_STORAGE_TRANSPORT
0x00008000
O alterador pode usar um transporte como um elemento de armazenamento independente. Para um alterador SCSI, esse sinalizador reflete o estado do bit MT na página de recursos do dispositivo.
CHANGER_VOLUME_ASSERT
0x00400000
O alterador pode verificar as informações de volume. Para um alterador SCSI, esse sinalizador indica se o alterador dá suporte ao comando SEND VOLUME TAG com um código de ação de envio de ASSERT.
CHANGER_VOLUME_IDENTIFICATION
0x00100000
O alterador dá suporte à identificação de volume. Para um alterador SCSI, esse sinalizador indica se o alterador dá suporte aos comandos SEND VOLUME TAG e REQUEST VOLUME ELEMENT ADDRESS.
CHANGER_VOLUME_REPLACE
0x00800000
O alterador pode substituir informações de volume. Para um alterador SCSI, esse sinalizador indica se o alterador dá suporte ao comando SEND VOLUME TAG com um código de ação de envio de REPLACE.
CHANGER_VOLUME_SEARCH
0x00200000
O alterador pode pesquisar informações de volume. Para um alterador SCSI, esse sinalizador indica se o alterador dá suporte ao comando SEND VOLUME TAG com um código de ação de envio de TRANSLATE.
CHANGER_VOLUME_UNDEFINE
0x01000000
O alterador pode limpar as informações de volume existentes. Para um alterador SCSI, esse sinalizador indica se o alterador dá suporte ao comando SEND VOLUME TAG com um código de ação de envio de UNDEFINE.

Features1

Todos os recursos adicionais compatíveis com o alterador. Esse membro pode ser um ou mais dos valores a seguir.

Valor Significado
CHANGER_CLEANER_AUTODISMOUNT
0x80000004
O alterador moverá o cartucho de limpeza de volta para o slot original automaticamente após a conclusão da limpeza.
CHANGER_CLEANER_OPS_NOT_SUPPORTED
0x80000040
O alterador não dá suporte à limpeza automática de seus elementos.
CHANGER_IEPORT_USER_CONTROL_CLOSE
0x80000100
O alterador exige que o usuário feche manualmente uma porta de inserção/ejetação aberta.
CHANGER_IEPORT_USER_CONTROL_OPEN
0x80000080
O alterador exige que o usuário abra manualmente uma porta de inserção/ejeção fechada.
CHANGER_MOVE_EXTENDS_IEPORT
0x80000200
O alterador estenderá a bandeja automaticamente sempre que um comando for emitido para mover a mídia para uma porta de inserção/ejeção.
CHANGER_MOVE_RETRACTS_IEPORT
0x80000400
O alterador retrairá a bandeja automaticamente sempre que um comando for emitido para mover a mídia de uma porta de inserção/ejeção.
CHANGER_PREDISMOUNT_ALIGN_TO_DRIVE
0x80000002
O alterador requer um comando explícito para posicionar o elemento de transporte em uma unidade antes que ele possa ejetar a mídia da unidade.
CHANGER_PREDISMOUNT_ALIGN_TO_SLOT
0x80000001
O alterador requer um comando explícito para posicionar o elemento de transporte em um slot antes que ele possa ejetar a mídia do slot.
CHANGER_RTN_MEDIA_TO_ORIGINAL_ADDR
0x80000020
O alterador exige que a mídia seja retornada ao slot original depois de ser movida.
CHANGER_SLOTS_USE_TRAYS
0x80000010
O alterador usa bandejas removíveis em seus slots, que exigem que a mídia seja colocada em uma bandeja e a bandeja movida para a posição desejada.
CHANGER_TRUE_EXCHANGE_CAPABLE
0x80000008
O alterador pode trocar mídia entre uma origem e um destino em uma única operação. Esse sinalizador só será válido se CHANGER_EXCHANGE_MEDIA também estiver definido em Recursos0.

MoveFromTransport

Indica se o alterador dá suporte à movimentação de uma parte da mídia de um elemento de transporte para outro elemento de transporte, um slot de armazenamento, uma porta de inserção/ejeção ou uma unidade. Para um alterador SCSI, isso é definido na página de funcionalidades do dispositivo. O transporte normalmente não é a origem ou o destino para mover ou trocar mídia.

Para determinar se o alterador pode mover a mídia para um determinado elemento, use os valores a seguir.

Valor Significado
CHANGER_TO_DRIVE
0x08
O alterador pode executar a operação do elemento especificado para uma unidade.
CHANGER_TO_IEPORT
0x04
O alterador pode executar a operação do elemento especificado para uma porta de inserção/ejeção.
CHANGER_TO_SLOT
0x02
O alterador pode executar a operação do elemento especificado para um slot de armazenamento.
CHANGER_TO_TRANSPORT
0x01
O alterador pode executar a operação do elemento especificado para um transporte.

MoveFromSlot

Indica se o alterador dá suporte à movimentação média de um slot de armazenamento para um elemento de transporte, outro slot de armazenamento, uma porta de inserção/ejeção ou uma unidade. Use os sinalizadores descritos em MoveFromTransport para determinar se o alterador dá suporte à movimentação.

MoveFromIePort

Indica se o alterador dá suporte à movimentação média de uma porta de inserção/ejeção para um elemento de transporte, um slot de armazenamento, outra porta de inserção/ejeção ou uma unidade. Para um alterador SCSI, isso é definido na página de funcionalidades do dispositivo. Use os sinalizadores descritos em MoveFromTransport para determinar se o alterador dá suporte à movimentação.

MoveFromDrive

Indica se o alterador dá suporte à movimentação média de uma unidade para um elemento de transporte, um slot de armazenamento, uma porta de inserção/ejeção ou outra unidade. Use os sinalizadores descritos em MoveFromTransport para determinar se o alterador dá suporte à movimentação.

ExchangeFromTransport

Indica se o alterador dá suporte à troca de mídia entre um elemento de transporte e outro elemento de transporte, um slot de armazenamento, uma porta de inserção/ejeção ou uma unidade. Use os sinalizadores descritos em MoveFromTransport para determinar se o alterador dá suporte à troca.

ExchangeFromSlot

Indica se o alterador dá suporte à troca de mídia entre um slot de armazenamento e um elemento de transporte, outro slot de armazenamento, uma porta de inserção/ejeção ou uma unidade. Use os sinalizadores descritos em MoveFromTransport para determinar se o alterador dá suporte à troca.

ExchangeFromIePort

Indica se o alterador dá suporte à troca de mídia entre uma porta de inserção/ejeção e um elemento de transporte, um slot de armazenamento, outra porta de inserção/ejeção ou uma unidade. Use os sinalizadores descritos em MoveFromTransport para determinar se o alterador dá suporte à troca.

ExchangeFromDrive

Indica se o alterador dá suporte à troca de mídia entre uma unidade e um elemento de transporte, um slot de armazenamento, uma porta de inserção/ejeção ou outra unidade. Use os sinalizadores descritos em MoveFromTransport para determinar se o alterador dá suporte à troca.

LockUnlockCapabilities

Os elementos de um alterador que podem ser bloqueados ou desbloqueados programaticamente. Esse membro só será válido se CHANGER_LOCK_UNLOCK estiver definido em Recursos0.

Para determinar se o alterador pode bloquear ou desbloquear um elemento específico, use um ou mais dos valores a seguir.

Valor Significado
LOCK_UNLOCK_DOOR
0x02
O trocador pode bloquear ou desbloquear sua porta.
LOCK_UNLOCK_IEPORT
0x01
O alterador pode bloquear ou desbloquear sua porta de inserção/ejeção.
LOCK_UNLOCK_KEYPAD
0x04
O alterador pode bloquear ou desbloquear seu teclado.

PositionCapabilities

Os elementos para os quais um alterador pode posicionar seu transporte. Use os sinalizadores descritos em MoveFromTransport para determinar se o alterador dá suporte ao posicionamento do transporte para um elemento específico. Esse membro só será válido se CHANGER_POSITION_TO_ELEMENT estiver definido em Recursos0.

Reserved1[2]

Reservado para uso futuro.

Reserved2[2]

Reservado para uso futuro.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP
Servidor mínimo com suporte Windows Server 2003
Cabeçalho winioctl.h (inclua Windows.h)

Confira também

IOCTL_CHANGER_GET_PARAMETERS