Compartir a través de


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