Confiabilidade das informações de erro estendidas
Informações de erro estendidas não são confiáveis. As informações de erro estendidas não podem ser usadas para criar lógica de código. É apropriado verificar a presença de informações de erro estendidas e, se houver, despejar, salvar ou registrar essas informações. Mas não confie na informação ou no seu conteúdo.
As razões a seguir 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 pelo TCP. Esses componentes diferentes geram códigos de erro muito diferentes, e as verificações de código, portanto, são inerentemente não confiáveis e não recomendadas.
- A propagação de informações de erro estendidas pode ser desativada, conforme explicado anteriormente. Se o código de deteção for incluído, o aplicativo provavelmente deixará de funcionar em determinados ambientes.
- A propagação de informações de erro estendidas é realizada da melhor maneira possível. A propagação ou geração de informações de erro estendidas pode falhar se não houver memória suficiente no computador para processar ou propagar a cadeia. Nessas circunstâncias, a cadeia será abandonada. Alguns protocolos têm comprimentos limitados para pacotes de falha, uma vez que geralmente não incluem muitas informações. Se o comprimento da cadeia exceder o comprimento permitido do pacote, o tempo de execução RPC começará a descartar informações da cadeia na tentativa de encaixar a cadeia no pacote. O tempo de execução primeiro cai recordes, a partir do penúltimo recorde, indo para trás, até que restam apenas o primeiro e o último registros. Se a cadeia ainda não couber em um pacote, o tempo de execução descarta parâmetros de cadeia de caracteres e nomes de computador. Se um parâmetro string for descartado, o tipo do parâmetro será definido como none. Se um registro for descartado, o sinalizador EEInfoNextRecordsMissing será definido no próximo registro e EEInfoPreviousRecordsMissing será definido no registro anterior.