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

[in] Irp

Ponteiro para o IRP.

Retornar valor

Se o alterador der suporte à configuração de acesso, ChangerSetAccess retornará o valor STATUS_XXX 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 ao acesso de configuração, ChangerSetAccess retornará STATUS_INVALID_DEVICE_REQUEST.

Comentários

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 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 aos quais 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 MOVER MEDIUM para estender ou retirar um IEport.

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_SET_ACCESS

GET_CHANGER_PARAMETERS

IOCTL_CHANGER_SET_ACCESS