Compartilhar via


Noções básicas sobre informações de erro estendidas

As informações de erro estendidas são uma matriz de registros, cada um indicando a passagem do código de erro por meio de uma camada específica no sistema ou aplicativo. Se ocorrer um erro em um computador C, como é chamado no computador B, que, por sua vez, é chamado do computador A, o tempo de execução do RPC no computador C gera um ou mais registros que descrevem o erro e os passa para o computador B. O Computador B pode adicionar um ou mais registros ao cabeçalho da cadeia existente, e passa a cadeia completa para A. Um pode adicionar um ou mais registros e exibir ou registrar as informações. Essencialmente, então, a cadeia de erros estendida representa o histórico do erro.

As informações de erro estendidas não substituem o código de erro (o código de status RPC_S_*). Independentemente de quanto ou se as informações de erro estendidas são geradas, o código de erro permanece inalterado.

Cada registro de informações de erro estendido contém o seguinte. Consulte RPC_EXTENDED_ERROR_INFO para obter mais informações:

  • ComputerName — esse é o nome DNS não qualificado do computador no qual o erro foi originado. Somente os registros nos limites do computador têm essas informações. Por exemplo, no cenário descrito anteriormente com os computadores A, B e C, o ComputerName é definido para os seguintes campos:

    Record Campo ComputerName
    Registro nº 1 gerado pelo computador C -
    Registro nº 2 gerado pelo computador C -
    Registro nº 3 gerado pelo computador C C
    Registro nº 1 gerado pelo computador B -
    Registro nº 2 gerado pelo computador B -
    Registro nº 3 gerado pelo computador B B
    Registro nº 1 gerado pelo computador A -
    Registro nº 2 gerado pelo computador A -
    Registro nº 3 gerado pelo computador A -
    Cabeçalho da cadeia  

     

  • ProcessID — identificador de processo do processo que gerou o erro.

  • TimeStamp — hora em que o erro ocorreu, expresso no formato UTC.

  • Gerando Componente – definição de código inteiro do componente lógico que gerou o erro. Os seguintes componentes estão definidos no momento:

    Código Nome Descrição
    1 Aplicativo O componente que possui a rotina de gerente para a chamada RPC específica
    2 Runtime O tempo de execução do RPC
    3 Provedor de segurança O provedor de segurança para essa chamada.
    4 NPFS O sistema de arquivos NPFS
    5 RDR O Redirecionador
    6 NMP O sistema de pipe nomeado. Isso pode ser NPFS ou RDR, mas, em muitos casos, o tempo de execução do RPC não sabe quem executou a operação solicitada e, nesses casos, o NMP é retornado.
    7 IO O sistema de E/S ou um driver usado pelo sistema de E/S. Isso pode ser NPFS, RDR ou um provedor Winsock.
    8 Winsock O provedor Winsock
    9 Código Authz As APIs de autorização.
    10 LPC A instalação chamada de procedimento local.

     

  • Status – código de erro gerado ou retornado pela camada
  • DetectionLocation — número exclusivo que identifica o local do código em que o erro foi detectado. Esse campo está vinculado ao código e será alterado de versão para versão. Uma lista separada dos locais de detecção mais comumente encontrados será publicada.
  • Sinalizadores – sinalizadores que especificam informações sobre o registro. Os sinalizadores definidos atualmente são EEInfoPreviousRecordsMissing e EEInfoNextRecordsMissing, correspondentes aos valores numéricos 1 e 2, respectivamente. Se EEInfoPreviousRecordsMissing estiver definido, um ou mais registros antes desse registro estiver ausente. Se EEInfoNextRecordsMissing estiver definido, um ou mais registros após esse registro estarão ausentes. Para obter a descrição de por que os registros podem estar ausentes, consulte Confiabilidade das informações de erro estendidas.
  • Até quatro parâmetros de erro. Um parâmetro de erro é uma estrutura variante leve que fornece informações adicionais sobre o erro. As informações adicionais dependem do erro e do local de detecção. Os parâmetros podem ser do tipo cadeia de caracteres ANSI (LPSTR), Cadeia de Caracteres Unicode (LPWSTR), valor longo (longo), valor curto (curto), ponteiro (int64) ou nenhum.