Compartir a través de


Función ChangerSetAccess (mcd.h)

ChangerSetAccess controla los aspectos específicos del dispositivo de un IRP de control de dispositivo con el código IOCTL IOCTL_CHANGER_SET_ACCESS.

Sintaxis

NTSTATUS ChangerSetAccess(
  [in] PDEVICE_OBJECT DeviceObject,
  [in] PIRP           Irp
);

Parámetros

[in] DeviceObject

Puntero al objeto de dispositivo que representa el modificador.

[in] Irp

Puntero al IRP.

Valor devuelto

Si el modificador admite la configuración del acceso, ChangerSetAccess devuelve el valor STATUS_XXX devuelto por el controlador de puerto del sistema o uno de los siguientes valores:

STATUS_SUCCESS

STATUS_INSUFFICIENT_RESOURCES

STATUS_INVALID_PARAMETER

Si el modificador no admite la configuración del acceso, ChangerSetAccess devuelve STATUS_INVALID_DEVICE_REQUEST.

Comentarios

Esta rutina es necesaria.

ChangerSetAccess bloquea o desbloquea el IEport, la puerta o el teclado de un cambiador, y extiende o retira un IEport.

El controlador de clase changer comprueba la longitud del búfer de entrada en la ubicación de la pila de E/S antes de llamar a ChangerSetAccess. Irp-SystemBuffer> apunta a una estructura de CHANGER_SET_ACCESS como parámetro de entrada que indica el elemento que se va a establecer y la operación que se va a realizar.

ChangerSetAccess comprueba primero si hay elementos y operaciones no admitidos, y devuelve el código de estado adecuado para aquellos que no admite.

A continuación, ChangerSetAccess traduce la dirección del elemento de base cero pasada por el sistema a la dirección de elemento específica del dispositivo requerida por el modificador.

Por último, ChangerSetAccess compila un SRB con un CDB para la operación especificada en el elemento especificado y lo envía al controlador de puerto del sistema. El comando que se va a usar depende del modificador. Por ejemplo, el controlador de miniclase Exabyte usa el comando SCSI PREVENT ALLOW MEDIUM REMOVAL para bloquear o desbloquear una puerta de cambio y MOVE MEDIUM para extender o retirar un IEport.

Requisitos

Requisito Value
Plataforma de destino Escritorio
Encabezado mcd.h (incluya Mcd.h, Ntddchgr.h)
IRQL PASSIVE_LEVEL

Consulte también

CHANGER_SET_ACCESS

GET_CHANGER_PARAMETERS

IOCTL_CHANGER_SET_ACCESS