Affidabilità delle informazioni sugli errori estesi
Le informazioni sugli errori estese non sono affidabili. Le informazioni sugli errori estesi non possono essere usate per la logica di compilazione del codice. È opportuno verificare la presenza di informazioni sugli errori estese e, se presente, per eseguire il dump, salvare o registrare tali informazioni. Ma non si basano sulle informazioni o sul relativo contenuto.
I motivi seguenti spiegano perché le informazioni sugli errori estese non sono affidabili:
- La sequenza e il contenuto dei record di errore estesi dipendono dall'architettura interna del sistema, che è soggetta a modifiche. Un'operazione può passare attraverso NPFS nei sistemi correnti, ma domani potrebbe passare attraverso TCP. Questi diversi componenti generano codici di errore molto diversi e i controlli del codice sono quindi intrinsecamente inaffidabili e non consigliati.
- La propagazione delle informazioni sugli errori estesi può essere disabilitata, come illustrato in precedenza. Se il codice di rilevamento è incluso, l'applicazione smetterà probabilmente di funzionare in determinati ambienti.
- La propagazione delle informazioni sugli errori estese viene eseguita in modo ottimale. La propagazione o la generazione di informazioni sugli errori estesi possono non riuscire se non è presente memoria sufficiente nel computer per elaborare o propagare la catena. In tali circostanze, la catena verrà eliminata. Alcuni protocolli hanno lunghezze limitate per i pacchetti di errore poiché in genere non includono molte informazioni. Se la lunghezza della catena supera la lunghezza consentita del pacchetto, il tempo di esecuzione RPC inizia a eliminare le informazioni dalla catena in un tentativo di adattare la catena al pacchetto. L'ora di esecuzione elimina prima i record, a partire dal penultimo record, andando indietro, fino a quando rimangono solo i primi e gli ultimi record. Se la catena non è ancora adatta a un pacchetto, il tempo di esecuzione elimina i parametri stringa e i nomi di computer. Se viene eliminato un parametro stringa, il tipo del parametro è impostato su nessuno. Se un record viene eliminato, il flag EEInfoNextRecordsMissing viene impostato nel record successivo e EEInfoPreviousRecordsMissing viene impostato nel record precedente.