Partilhar via


Função ChangerSetAccess (mcd.h)

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

Sintaxe

NTSTATUS ChangerSetAccess(
  [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 alterador der suporte à configuração de acesso, ChangerSetAccess retornará o STATUS_XXX valor retornado pelo driver de porta do sistema ou um dos seguintes valores:

STATUS_SUCCESS

STATUS_INSUFFICIENT_RESOURCES

STATUS_INVALID_PARAMETER

Se o alterador não der suporte à configuração de acesso, ChangerSetAccess retornará STATUS_INVALID_DEVICE_REQUEST.

Observações

Essa rotina é necessária.

ChangerSetAccess bloqueia ou desbloqueia o IEport, a porta ou o teclado de um alterador e estende ou retrai um IEport.

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

ChangerSetAccess primeiro verifica se há elementos e operações sem suporte e retorna o código de status apropriado para aqueles que ele não dá suporte.

Em seguida, ChangerSetAccess converte o endereço do elemento baseado em zero passado pelo sistema para o endereço de elemento específico do dispositivo exigido pelo alterador.

Por fim, ChangerSetAccess cria um SRB com um CDB para a operação determinada no elemento fornecido e o envia para o driver de porta do sistema. O comando a ser usado depende do alterador. Por exemplo, o driver de miniclasse Exabyte usa o comando SCSI PREVENT ALLOW MEDIUM REMOVAL para bloquear ou desbloquear uma porta do alterador e MOVE MEDIUM para estender ou retrair um IEport.

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_SET_ACCESS

GET_CHANGER_PARAMETERS

IOCTL_CHANGER_SET_ACCESS