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 |