Función ChangerError (mcd.h)
ChangerError realiza el control de errores específico del dispositivo.
Sintaxis
void ChangerError(
PDEVICE_OBJECT DeviceObject,
PSCSI_REQUEST_BLOCK Srb,
NTSTATUS *Status,
BOOLEAN *Retry
);
Parámetros
DeviceObject
Puntero al objeto de dispositivo que representa el modificador.
Srb
Puntero al bloque de solicitud SCSI para la operación que produjo un error.
Status
Especifica la dirección del código STATUS_XXX establecido por el sistema. El controlador de miniclase del modificador puede cambiar el estado o dejarlo tal cual.
Retry
Puntero a una marca que indica si se reintenta la solicitud. El controlador de miniclase del modificador puede establecer esta marca o dejarla tal cual.
Valor devuelto
None
Observaciones
Esta rutina es necesaria.
Si se produce un error en un SRB con un estado SCSI de CHECK CONDITION, el controlador de clase SCSI llama a la rutina ChangerClassError del controlador de clase changer. ChangerClassError realiza el control de errores independiente del dispositivo y llama a la rutina ChangerError del controlador de miniclase modificador.
ChangerError comprueba primero Srb-SrbStatus> con SRB_STATUS_AUTOSENSE_VALID para asegurarse de que el búfer de datos de sentido es válido. Si es así, comprueba los datos de sentido en Srb-SenseInfoBuffer> para determinar si se debe actualizar *Status con un código STATUS_XXX más preciso o establecer la marca Retry antes de volver al controlador de clase changer. El recuento de reintentos del controlador de clase changer determina si el SRB se reintenta realmente.
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Escritorio |
Encabezado | mcd.h (incluya Mcd.h, Ntddchgr.h) |
IRQL | PASSIVE_LEVEL |