Compartilhar via


Função ChangerSetPosition (mcd.h)

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

Sintaxe

NTSTATUS ChangerSetPosition(
  [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 à definição da posição do elemento de transporte, ChangerSetPosition retornará o status retornado pelo driver de porta do sistema ou um dos seguintes valores:

STATUS_SUCCESS

STATUS_INFO_LENGTH_MISMATCH

STATUS_INVALID_PARAMETER

STATUS_INSUFFICIENT_RESOURCES

Se o alterador não der suporte à definição da posição do elemento de transporte, ChangerSetPosition retornará STATUS_INVALID_DEVICE_REQUEST.

Observações

Essa rotina é necessária.

ChangerSetPosition define o mecanismo de transporte robótico do modificador para o destino especificado, normalmente para otimizar a movimentação ou troca de mídia posicionando primeiro o transporte.

O sinalizador CHANGER_POSITION_TO_ELEMENT no Features0 de GET_CHANGER_PARAMETERS indica se o alterador dá suporte a essa funcionalidade.

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

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

ChangerSetPosition define o campo Informações no bloco de status de E/S como tamanho de(CHANGER_SET_POSITION) antes de retornar ao driver de classe do changer.

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

, IOCTL_CHANGER_SET_POSITION

CHANGER_ELEMENT

CHANGER_SET_POSITION