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 |