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 |