Função ChangerMoveMedium (mcd.h)
ChangerMoveMedium manipula os aspectos específicos do dispositivo de um IRP de controle de dispositivo com o código IOCTL IOCTL_CHANGER_MOVE_MEDIUM.
Sintaxe
NTSTATUS ChangerMoveMedium(
[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
ChangerMoveMedium retorna 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_INVALID_DEVICE_REQUEST
STATUS_INVALID_PARAMETER
STATUS_INSUFFICIENT_RESOURCES
STATUS_SOURCE_ELEMENT_EMPTY
Comentários
Essa rotina é necessária.
ChangerMoveMedium move uma parte da mídia de um elemento para outro.
O driver de classe do alterador verifica o comprimento do buffer de entrada no local da pilha de E/S antes de chamar ChangerMoveMedium. Irp-SystemBuffer>aponta para uma estrutura CHANGER_MOVE_MEDIUM que indica o elemento de transporte, a origem, o destino e se o meio deve ser invertido.
ChangerMoveMedium 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 específicos do dispositivo. Em seguida, ele cria um SRB com um CDB para mover a parte da mídia e a envia para o driver de porta do sistema.
ChangerMoveMedium define o campo Informações no bloco de status de E/S como sizeof(CHANGER_MOVE_MEDIUM) antes de retornar ao driver de classe do alterador.
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Área de Trabalho |
Cabeçalho | mcd.h (include Mcd.h, Ntddchgr.h) |
IRQL | PASSIVE_LEVEL |