Compartilhar via


Função ChangerExchangeMedium (mcd.h)

ChangerExchangeMedium manipula os aspectos específicos do dispositivo de um IRP de controle de dispositivo com o código IOCTL IOCTL_CHANGER_EXCHANGE_MEDIUM.

Sintaxe

NTSTATUS ChangerExchangeMedium(
  [in] PDEVICE_OBJECT DeviceObject,
  [in] PIRP           Irp
);

Parâmetros

[in] DeviceObject

Ponteiro para o objeto do dispositivo que representa o alterador.

[in] Irp

Ponteiro para o IRP.

Valor de retorno

Se o changer der suporte à troca de mídia, ChangerExchangeMedium retornará o status retornado pelo driver de porta do sistema ou um dos seguintes valores:

STATUS_SUCCESS

STATUS_DESTINATION_ELEMENT_FULL

STATUS_INVALID_ELEMENT_ADDRESS

STATUS_SOURCE_ELEMENT_EMPTY

Se o changer não der suporte à troca de mídia, ChangerExchangeMedium retornará STATUS_INVALID_DEVICE_REQUEST.

Observações

Essa rotina é necessária.

ChangerExchangeMedium move uma parte da mídia de um elemento de origem para um destino e desse destino para outro destino. A origem e o segundo destino geralmente são os mesmos, resultando em uma simples troca de mídia.

O sinalizador CHANGER_EXCHANGE_MEDIA no Features0 da estrutura de GET_CHANGER_PARAMETERS indica se o alterador dá suporte a essa funcionalidade. Um alterador que dá suporte à troca de mídia normalmente tem dois mecanismos de seletor em um único elemento de transporte ou pelo menos dois elementos de transporte. Um alterador que tem um único mecanismo de seletor pode dar suporte à troca de meio por meio da emulação do comando.

O driver de classe do alterador verifica o comprimento do buffer de entrada no local da pilha de E/S antes de chamar a rotina changerExchangeMedium de de um driver de miniclasse. irp –> SystemBuffer aponta para uma estrutura de CHANGER_EXCHANGE_MEDIUM como um parâmetro de entrada que indica o elemento de transporte e o destino a ser definido.

ChangerExchangeMedium primeiro verifica se os endereços de elemento de transporte, origem e destino são válidos e converte endereços de elementos baseados em zero em endereços de elemento específicos do dispositivo. Em seguida, ele cria um SRB com um CDB para trocar a mídia e envia-a para o driver de porta do sistema.

Requisitos

Requisito Valor
da Plataforma de Destino Área de trabalho
cabeçalho mcd.h (include Mcd.h, Ntddchgr.h)
IRQL PASSIVE_LEVEL

Consulte também

CHANGER_ELEMENT

CHANGER_EXCHANGE_MEDIUM

ChangerMoveMedium

GET_CHANGER_PARAMETERS