Partilhar via


Função ChangerError (mcd.h)

ChangerError executa a manipulação de erro específica 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 código STATUS_XXX 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á.

Retornar valor

Nenhum

Comentários

Essa rotina é necessária.

Se um SRB falhar com uma 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 ChangerError do driver de miniclasse do alterador.

ChangerError primeiro verifica Srb-SrbStatus> com SRB_STATUS_AUTOSENSE_VALID para garantir que o buffer de dados de sentido seja válido. Nesse caso, ele verifica os dados de sentido no Srb-SenseInfoBuffer> para determinar se deseja atualizar *Status com um código STATUS_XXX mais preciso e/ou definir o sinalizador Retry antes de retornar ao driver de classe do alterador. A contagem de repetições do driver de classe do alterador determina se o SRB foi realmente repetido.

Requisitos

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