Compartilhar via


Função ChangerError (mcd.h)

ChangerError executa o tratamento de erros específicos do dispositivo.

Sintaxe

void ChangerError(
  PDEVICE_OBJECT      DeviceObject,
  PSCSI_REQUEST_BLOCK Srb,
  NTSTATUS            *Status,
  BOOLEAN             *Retry
);

Parâmetros

DeviceObject

Ponteiro para o objeto do dispositivo que representa o alterador.

Srb

Ponteiro para o bloco de solicitação SCSI para a operação que falhou.

Status

Especifica o endereço do STATUS_XXX código definido pelo sistema. O driver de miniclasse do alterador pode alterar o status ou deixá-lo como está.

Retry

Ponteiro para um sinalizador que indica se a solicitação deve ser repetida. O driver de miniclasse do alterador pode definir esse sinalizador ou deixá-lo como está.

Valor de retorno

Nenhum

Observações

Essa rotina é necessária.

Se um SRB falhar com um status SCSI de CHECK CONDITION, o driver de classe SCSI chamará a rotina changerClassError do driver de classe do alterador. ChangerClassError executa o tratamento de erros independente do dispositivo e chama a rotina de changerError do driver de miniclasse do alterador.

ChangerError verifica primeiro Srb –> SrbStatus com SRB_STATUS_AUTOSENSE_VALID para garantir que o buffer de dados de sentido seja válido. Em caso afirmativo, ele verifica os dados de sentido em Srb –> SenseInfoBuffer para determinar se deve atualizar *Status com um código STATUS_de XXX mais preciso e/ou definir o sinalizador de repetição de antes de retornar ao driver de classe do changer. A contagem de repetição do driver de classe do modificador determina se o SRB foi realmente repetido.

Requisitos

Requisito Valor
da Plataforma de Destino Área de trabalho
cabeçalho mcd.h (include Mcd.h, Ntddchgr.h)
IRQL PASSIVE_LEVEL