Função ChangerExchangeMedium (mcd.h)

O 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 de dispositivo que representa o alterador.

[in] Irp

Ponteiro para o IRP.

Retornar valor

Se o alterador 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 alterador não der suporte à troca de mídia, ChangerExchangeMedium retornará STATUS_INVALID_DEVICE_REQUEST.

Comentários

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 em Recursos0 da estrutura 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 mídia 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 um driver de miniclasse. Irp-SystemBuffer> aponta para uma estrutura 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, em seguida, converte endereços de elemento 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 a envia para o driver de porta do sistema.

Requisitos

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

Confira também

CHANGER_ELEMENT

CHANGER_EXCHANGE_MEDIUM

ChangerMoveMedium

GET_CHANGER_PARAMETERS