Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
La registrazione setupAPI supporta un meccanismo che stabilisce un contesto di log per un thread. Questo contesto viene stabilito impostando un token di log per il thread. SetupAPI fornisce questo meccanismo in modo che il codice chiamato da un thread possa scrivere voci di log nel contesto di log del thread chiamante.
Ad esempio, un thread può impostare un token di log per il contesto di log prima di chiamare un installer di classe o un co-installer. Il programma di installazione, a sua volta, può recuperare il token di log del thread chiamante e usare tale token per scrivere voci di log nel log di testo e nella sezione associata al contesto di log del thread chiamante.
Impostazione di un token di log per un thread
La funzione SetupSetThreadLogToken imposta un token di log per il thread da cui è stata chiamata questa funzione. Il token di log può essere un token di log definito dal sistema o un token di log recuperato chiamando SetupGetThreadLogToken.
Di seguito sono riportati esempi di come è possibile stabilire un contesto di log per un thread:
Un'applicazione di installazione può chiamare SetupSetThreadLogToken per stabilire un contesto di log per altri codici di installazione eseguiti nello stesso thread. Quando stabilisce il contesto di log per il thread, l'applicazione deve usare un token di log definito dal sistema, ad esempio LOGTOKEN_SETUPAPI_APPLOG, nella chiamata a SetupSetThreadLogToken.
Nota Se il contesto del log viene impostato usando un token di log definito dal sistema, le chiamate successive a una funzione di registrazione SetupAPI effettuate da tale contesto di log scrivono voci di log nel log di testo di installazione, che non fanno parte di una sezione del log di testo.
Se un programma di installazione di classe o un co-installer avvia un nuovo thread, il programma di installazione può impostare il contesto del log affinché tale thread sia lo stesso del thread padre. Questa operazione viene eseguita nel modo seguente:
- Prima che il thread padre avvii il nuovo thread, acquisisce il token di log corrente chiamando SetupGetThreadLogToken.
- Il thread padre avvia il nuovo thread e passa il token di log corrente tramite un metodo specifico dell'implementazione, ad esempio il salvataggio del token in una variabile globale.
- Il nuovo thread chiama SetupSetThreadLogToken con il token di log corrente. Di conseguenza, il nuovo thread "eredita" il contesto di log del thread padre.
Nota Se un thread di un programma di installazione di classe o di un co-installer imposta il contesto di log usando questo metodo, le chiamate successive a una funzione di registrazione SetupAPI effettuate da tale contesto di log scrivono voci nel file di log di testo dell'installazione che possono far parte di una sezione del log di testo. Ciò si verifica solo se una sezione del log di testo è stata stabilita dall'operazione di installazione setupAPI che ha chiamato il programma di installazione.
Di seguito è riportato un esempio di chiamata a SetupSetThreadLogToken che imposta il contesto del log del thread corrente sul log di testo dell'installazione del dispositivo (SetupAPI.app.log) specificando il token di log definito dal sistema di LOGTOKEN_SETUPAPI_APPLOG. Una chiamata successiva a una funzione di registrazione SetupAPI che usa questo contesto di log scriverebbe la voce di log nel log di testo dell'installazione del dispositivo, ma non come parte di una sezione del log di testo.
SP_LOG_TOKEN LogToken = LOGTOKEN_SETUPAPI_APPLOG;
SetupSetThreadLogToken(LogToken);
Recupero di un token di log per un thread
La funzione SetupGetThreadLogToken recupera un token di log per il thread da cui è stata chiamata questa funzione.
Ad esempio, un programma di installazione di classe può chiamare SetupGetThreadLogToken per recuperare il token di log applicabile all'operazione SetupAPI che ha chiamato il programma di installazione della classe. Il programma di installazione della classe può quindi usare questo token di log recuperato per registrare le voci nel log di testo che si applica all'operazione SetupAPI corrispondente.
Nota Se il contesto di log di un thread non è stato impostato in precedenza da una chiamata a SetupSetThreadLogToken, una chiamata a SetupGetThreadLogToken restituisce un token di log con valore LOGTOKEN_UNSPECIFIED.
Di seguito è riportato un esempio di chiamata a SetupGetThreadLogToken che recupera il token di log per il thread corrente.
SP_LOG_TOKEN LogToken = SetupGetThreadLogToken();