Confiabilidade das informações de erro estendidas
As informações de erro estendidas não são confiáveis. Informações de erro estendidas não podem ser usadas para criar lógica de código. É apropriado marcar para a presença de informações de erro estendidas e, se houver, despejar, salvar ou registrar essas informações. Mas não confie nas informações ou em seu conteúdo.
Os seguintes motivos explicam por que as informações de erro estendidas não são confiáveis:
- A sequência e o conteúdo dos registros de erro estendidos dependem da arquitetura interna do sistema, que está sujeita a alterações. Uma determinada operação pode passar pelo NPFS nos sistemas atuais, mas amanhã pode passar por TCP. Esses diferentes componentes geram códigos de erro muito diferentes e, portanto, as verificações de código não são inerentemente confiáveis e não são recomendadas.
- A propagação de informações de erro estendidas pode ser desabilitada, conforme explicado anteriormente. Se o código de detecção for incluído, o aplicativo provavelmente deixará de funcionar em determinados ambientes.
- A propagação de informações de erro estendidas é executada da melhor maneira. A propagação ou a geração de informações de erro estendidas podem falhar se não houver memória suficiente no computador para processar ou propagar a cadeia. Sob tais circunstâncias, a cadeia será descartada. Alguns protocolos têm comprimentos limitados para pacotes de falha, pois geralmente não incluem muitas informações. Se o comprimento da cadeia exceder o comprimento permitido do pacote, o tempo de execução do RPC começará a remover informações da cadeia na tentativa de ajustar a cadeia ao pacote. O tempo de execução primeiro derruba os recordes, começando do penúltimo recorde, indo para trás, até que apenas o primeiro e o último registros permaneçam. Se a cadeia ainda não se ajustar a um pacote, o tempo de execução descartará os parâmetros de cadeia de caracteres e os nomes do computador. Se um parâmetro de cadeia de caracteres for descartado, o tipo do parâmetro será definido como nenhum. Se um registro for descartado, o sinalizador EEInfoNextRecordsMissing será definido no próximo registro e EEInfoPreviousRecordsMissing será definido no registro anterior.