Dados gerais

Interface: ErrorManager
Arquivos: errormanager.h
Última atualização: 11/04/2004
Autor: Luiz Henrique Shigunov
Informações

Descrição

Descrição

Para facilitar o desenvolvimento, a identificação e a manipulação dos códigos de retorno das funções, códigos padrões foram definidos.

O administrador de erros não tem implementação.

Algumas funções do sistema retornam um ponteiro e como alguns valores do ponteiro não são válidos, esses valores são usados para retornar o código de erro.

As seguintes macros foram criadas para este caso:

IS_PTR_ERROR(error) - retorna verdadeiro se o ponteiro error é um erro.

PTR_TO_ERROR(error) - converte o ponteiro error num inteiro.

ERROR_TO_PTR(error) - converte o inteiro error num ponteiro.

Se uma função que retorne void * quiser retornar o erro E_FAULT ela deve fazer: return ERROR_TO_PTR(E_FAULT);

Códigos de retorno

ConstanteValorDescrição
E_OK0x00Sucesso
E_BAD_INDEX0x01Índice incorreto
E_BAD_VALUE0x02Valor incorreto
E_BAD_TYPE0x03Tipo incorreto
E_MISMATCHED_VALUES0x04Valores conflitantes
E_PERMISSION_DENIED0x05Permissão negada
E_FAULT0x06Endereço de memória incorreto
E_NOT_ALLOWED0x07Operação não permitida
E_NOT_INIT0x08Estrutura/objeto não iniciado corretamente
E_NOT_FOUND0x09Valor/objeto/recurso não encontrado
E_NOT_READY0x0aObjeto/recurso não está pronto
E_NOT_EMPTY0x0bObjeto/recurso não vazio
E_NOT_IN_USE0x0cObjeto/recurso não está sendo usado
E_EMPTY0x0dObjeto/recurso vazio
E_IN_USE0x0eValor/objeto/recurso em uso
E_BUSY0x0fOcupado
E_TIMED_OUT0x10Tempo limite esgotado
E_INTERRUPTED0x11Operação interrompida
E_WOULD_BLOCK0x12Iria bloquear
E_IO_ERROR0x13Erro de entrada/saída
E_TOO_BIG0x14Nome/estrutura/buffer grande demais
E_UNSUPPORTED0x15Operação não suportada
E_END_REACHED0x16Fim alcançado
E_NO_MEMORY0x17Não existe memória suficiente
E_REGISTERED0x18Objeto/estrutura já está registrada
E_NOT_REGISTERED0x19Objeto/estrutura não está registrada
E_UNDEFINED0x1aErro indefinido
E_NOT_IMPLEMENTED0x1bFunção/operação não implementada
E_BUG0x1cA especificação da interface não foi atendida. Por exemplo, um valor de parâmetro incorreto.
E_NOT_USER_TASK0x1dA tarefa não é uma tarefa do usuário
E_NO_SUCH_UNIT0x1eUnidade inexistente
E_BUFFER_TOO_SMALL0x1fTamanho do buffer muito pequeno
E_NO_SUCH_DRIVE0x20Drive inexistente
E_NO_SUCH_INTERFACE0x21Interface inexistente
E_INVALID_VERSION0x22Versão inválida
E_PROBE_FAILED0x23O teste falhou
E_NO_SUCH_IMPLEMENTATION0x24Implementação inexistente
E_FILE_ERROR0x30Erro genérico de arquivo
E_FILE_EXISTS0x31O arquivo já existe
E_TOO_MANY_OPEN_FILES0x32Limite máximo de arquivos abertos atingido
E_NOT_A_DIRECTORY0x33Não é um diretório
E_IS_A_DIRECTORY0x34É um diretório
E_FS_FULL0x35Sistema de arquivos cheio
E_READ_ONLY_FS0x36Sistema de arquivos apenas para leitura
E_CORRUPTED_FS0x37Sistema de arquivos corrompido
E_LOOP0x38Muitas ligações simbólicas foram encontradas
E_NOT_FILE_DIR0x39Não é um arquivo nem um diretório
E_NO_MEDIA0x40Sem mídia no dispositivo
E_MEDIA_CHANGED0x41A mídia foi mudada
E_FORMAT_ERROR0x42Erro na formatação da mídia
E_READ_ONLY_DEVICE0x43Dispositivo apenas para leitura
E_LOADING_MODULE0x50Erro carregando o módulo
E_STARTING_MODULE0x51Erro iniciando o módulo
E_SHUTTINGDOWN_MODULE0x52Erro finalizando o módulo
E_INTERFACE_NOT_IMPLEMENTED0x53A interface não é implementada pelo módulo
E_BAD_FUNCTION_TYPE0x54Tipo da função inválida (é do usuário e deveria ser do sistema ou vice-versa)
E_MODULE0x55Erro genérico de módulo
E_HANDLED_INT0x70A interrupção foi servida
E_UNHANDLED_INT0x71A interrupção não foi servida
E_INVOKE_SCHEDULER0x72A interrupção foi servida e o escalonador deve ser chamado