Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Os drivers podem definir constantes IO_ERR_XXX personalizadas para usar como valores ErrorCode ao registrar erros. Pares de drivers que são escritos juntos também podem definir valores STATUS_XXX personalizados para solicitações IRP_MJ_INTERNAL_DEVICE_CONTROL .
O diagrama a seguir mostra os campos de bit em um valor NTSTATUS de 32 bits.
O campo Sev mostrado no diagrama anterior indica o código de gravidade, que deve ser um dos seguintes valores definidos pelo sistema:
ESTADO_SEVERIDADE_SUCESSO
Indica um valor NTSTATUS bem-sucedido, como STATUS_SUCCESS, ou o valor IO_ERR_RETRY_SUCCEEDED em pacotes de log de erros.
SEVERIDADE_DE_STATUS_INFORMACIONAL
Indica um valor informativo de NTSTATUS, como STATUS_SERIAL_MORE_WRITES.
STATUS_GRAVIDADE_AVISO
Indica um valor NTSTATUS de aviso, como STATUS_DEVICE_PAPER_EMPTY.
STATUS_SEVERITY_ERROR
Indica um valor NTSTATUS de erro, como STATUS_INSUFFICIENT_RESOURCES para um valor FinalStatus ou IO_ERR_CONFIGURATION_ERROR para um valor ErrorCode em pacotes de log de erros.
A maioria das constantes IO_ERR_XXX públicas pertencem à categoria STATUS_SEVERITY_ERROR.
O código do recurso especifica o recurso que gerou o erro. Para novos valores IO_ERR_XXX , os drivers especificam o valor FACILITY_IO_ERROR_CODE para Facility. Para valores STATUS_XXX personalizados, o significado de valores diferentes para Facility é definido pelo driver.
O bit C especifica se o valor é definido pelo cliente ou pela Microsoft. O bit é definido para valores definidos pelo cliente e limpo para valores definidos pela Microsoft.
Os drivers podem definir novos valores IO_ERR_XXX para identificar mensagens de erro personalizadas no log de eventos do sistema. Para obter uma descrição de como definir os valores NTSTATUS e as mensagens de erro que eles identificam, consulte Definindo tipos de erro personalizados.
Os pares de drivers podem definir valores STATUS_XXX específicos do driver para comunicar informações sobre solicitações de IRP_MJ_INTERNAL_DEVICE_CONTROL definidas em particular do driver inferior para o mais alto do par.
O driver de classe deve mapear qualquer valor privado STATUS_XXX para um valor NTSTATUS definido pelo sistema quando concluir um IRP se a rotina IoCompletion de um driver de nível superior existente puder ser chamada para esse IRP.
Para monitores emparelhados e drivers de miniporta de vídeo, o driver de porta de vídeo faz o mapeamento entre os valores públicos STATUS_XXX e as constantes definidas pelo Win32 retornadas pelos drivers de miniporta de vídeo. Para obter mais informações, consulte Drivers de miniporta de vídeo no Modelo de Controlador de Ecrã do Windows 2000.
Os drivers não podem usar valores NTSTATUS personalizados para IRPs que podem ser recebidos no modo de usuário, porque apenas os valores definidos pelo sistema podem ser convertidos em códigos de erro Win32.