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 |