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 |