WRPUI.exe: risolvere l’errore «UiaRaiseNotificationEvent» in Windows Performance Recorder UI

All’avvio di Windows Performance Recorder UI (WRPUI.exe) compare l’errore «UiaRaiseNotificationEvent»? In questa guida trovi diagnosi, cause e rimedi comprovati: compatibilità WPT↔OS, reinstallazione pulita, dipendenze, SFC/DISM e alternative via riga di comando.

Indice

Panoramica del problema

Il problema si manifesta all’apertura della GUI di Windows Performance Recorder (parte del Windows Performance Toolkit – WPT incluso nel Windows ADK). Il messaggio tipico è:

WRPUI.exe – Entry Point not Found
The procedure entry point UiaRaiseNotificationEvent could not be located in the dynamic link library …\Windows PerformanceRecorderUI.dll

La reinstallazione del WPT, o persino l’installazione su un secondo server, spesso non modifica il risultato se la causa è una incompatibilità tra versione del toolkit e sistema operativo o una dipendenza mancante/danneggiata.

Perché accade: cause più probabili

Probabile causaSpiegazione sintetica
Versione WPT non compatibile con il sistema operativoLe build recenti del WPT sono compilate contro funzioni di UI Automation (tra cui UiaRaiseNotificationEvent) introdotte in Windows 10 1709. Se il sistema è Windows Server 2016/2012 R2 o una release di Windows 10 precedente alla 1709, la funzione non esiste in uiautomationcore.dll.
DLL danneggiata o mancanteAggiornamenti o installazioni incomplete possono corrompere WindowsPerformanceRecorderUI.dll o librerie di supporto, impedendo la risoluzione corretta dell’entry point.
Dipendenze di runtime non presentiPacchetti Visual C++ Redistributable o componenti .NET non aggiornati possono impedire il corretto caricamento delle librerie native/managed utilizzate dalla GUI.
Conflitti di DLL (shadowing nel PATH)Una copia non di sistema di uiautomationcore.dll o altre DLL nella cartella dell’applicazione o in una directory indicata nel PATH può essere caricata al posto della versione di %SystemRoot%\System32.
Ambiente con restrizioniServer Core, AppLocker o “Controlled Folder Access” possono impedire il caricamento di componenti UIA o COM richiesti dalla GUI. In tali contesti è preferibile la riga di comando.

Cos’è UiaRaiseNotificationEvent (e perché conta)

UiaRaiseNotificationEvent è un’API di UI Automation (UIA) usata dalle applicazioni per comunicare notifiche ai client di accessibilità. È stata introdotta in Windows 10 Fall Creators Update (1709). Se il sistema è anteriore oppure è un’edizione server priva di tale funzione, qualunque programma compilato per invocarla fallirà con l’errore “Entry Point not Found”. Di conseguenza, WRPUI.exe può funzionare solo se l’OS fornisce quell’API oppure se si usa una build del WPT più vecchia, compatibile con l’OS in uso.

Matrice di compatibilità WPT ↔ sistema operativo

La regola pratica è: allinea il WPT alla “famiglia” del tuo Windows. Ecco una guida rapida per i casi più ricorrenti:

OS (esempi)Disponibilità UiaRaiseNotificationEventWPT consigliatoEsito atteso per WRPUI.exe
Windows 10 1607 (14393) / Windows Server 2016NoWPT/ADK della stessa era (1607 – build 14393)OK con WPT 1607; le build più recenti falliscono con l’errore.
Windows 10 1709 (16299) e successive / Windows 11WPT corrispondente o successivo (in genere compatibile in avanti)WRPUI si avvia; se non parte, indagare file danneggiati o dipendenze.
Windows Server 2019 (1809)WPT per 1809 o successivoWRPUI si avvia normalmente salvo conflitti/dipendenze.
Windows Server 2012 R2 / Windows 8.1NoUsare WPT della stessa epoca o preferire wpr.exe CLILe build moderne del WPT mostrano l’errore.

Procedura di troubleshooting consigliata

Segui l’ordine: verifica compatibilità, ripristina le dipendenze, elimina conflitti, quindi valuta i workaround.

Verifica la versione di Windows e la build

  • Premi Win+R → digita winver → conferma.
  • Oppure da PowerShell: Get-ComputerInfo | Select-Object OsName, OsVersion, OsBuildNumber

Se la build è precedente alla 1709 (o si tratta di Windows Server 2016 / 2012 R2), considera di allineare il WPT alla stessa epoca del sistema o, idealmente, aggiornare l’OS a una versione più recente (ad es. Server 2019 o Windows 10/11 supportati).

Allinea la versione del WPT

  1. Disinstalla completamente il WPT e i componenti correlati (“Windows Performance Toolkit”, eventuali voci “Windows Kits”).
  2. Elimina eventuali directory residue: rd /s /q "C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit" rd /s /q "C:\Program Files (x86)\Windows Kits\10\Windows Performance Analyzer" Nota: cancella solo le cartelle del WPT; non rimuovere altri SDK/WDK se li usi.
  3. Installa il WPT che corrisponde alla famiglia del tuo OS (es. ADK 1607 per Windows 10 1607/Server 2016) oppure, se l’OS è 1709 o successivo, l’ultima versione disponibile.
  4. Installazione “pulita”:
    • Usa l’installer dell’ADK selezionando solo Windows Performance Toolkit.
    • Per ambienti senza Internet, l’installer dell’ADK supporta il /layout <cartella> per scaricare i file offline.

Aggiorna le dipendenze di runtime

  • Visual C++ Redistributable 2015–2022 (x86 e x64) aggiornati.
  • .NET Framework (sulle versioni moderne di Windows è già incluso 4.7+; assicurati che sia patchato).
  • Opzionale con winget (se disponibile): winget install Microsoft.VCRedist.2015+.x64 winget install Microsoft.VCRedist.2015+.x86

Esegui WRPUI con privilegi elevati

In alcuni ambienti le librerie di UI Automation vengono caricate correttamente solo con un token amministrativo. Prova a cliccare con il tasto destro → Esegui come amministratore. In alternativa, abilita temporaneamente “Esegui questo programma come amministratore” nelle proprietà dell’eseguibile.

Ripara i file di sistema

Se sospetti DLL corrotte o mancanti:

sfc /scannow
DISM /Online /Cleanup-Image /RestoreHealth

Al termine, riavvia e tenta di avviare nuovamente WRPUI.

Individua conflitti di DLL (ProcMon / Path)

  1. Avvia Process Monitor e imposta i filtri:
    • Process Name is WRPUI.exe
    • Operation is Load Image o CreateFile
    • Path ends with uiautomationcore.dll
  2. Controlla da quale percorso viene caricata la DLL. Deve essere %SystemRoot%\System32\uiautomationcore.dll. Se proviene da cartelle applicative o di terze parti, rimuovi/riordina quelle voci nel PATH o rinomina la DLL superflua (previo backup).
  3. Verifica le versioni effettive direttamente da PowerShell: Get-Item "$env:windir\System32\uiautomationcore.dll" | Select-Object Name,@{N='FileVersion';E={$_.VersionInfo.FileVersion}} Get-Item "C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\WindowsPerformanceRecorderUI.dll" | Select-Object Name,@{N='FileVersion';E={$_.VersionInfo.FileVersion}}

Controlla le policy di sicurezza

  • AppLocker: se blocca l’eseguibile o le DLL del WPT, crea una regola temporanea di allow-list per test.
  • Controlled Folder Access (Defender): aggiungi WRPUI.exe/WPA.exe alle eccezioni se vedi eventi di blocco.
  • Server Core: l’interfaccia grafica non è supportata; usa direttamente wpr.exe.

Quando aggiornare il sistema operativo

Se WPT moderno è un requisito (per profili o funzionalità introdotte di recente) e il server è Windows Server 2016 o precedente, la soluzione più robusta è aggiornare almeno a Windows Server 2019 o usare una workstation Windows 10/11 aggiornata per acquisire/analizzare le tracce. In alternativa, resta sulla linea di WPT 1607 per restare compatibile con Server 2016, accettando le limitazioni dei profili meno recenti.

Workaround efficace: usa la riga di comando (wpr.exe)

Se l’errore riguarda solo la GUI, la raccolta delle tracce ETW continua a essere possibile e affidabile tramite CLI.

Avvio rapido

  1. Apri Prompt dei comandi (amministratore).
  2. Avvia una sessione con un profilo generico adatto alla maggior parte dei casi: wpr -start GeneralProfile -filemode
  3. Riproduci il problema/lo scenario di performance.
  4. Arresta e salva: wpr -stop C:\Traces\scenario.etl

Profili utili

  • Elenco profili disponibili: wpr -profiles
  • Traccia focalizzata su CPU e I/O: wpr -start CPU -start DiskIO -filemode
  • Scenario avvio (on/off): wpr -onoffscenario Boot -filemode Nota: seguire le istruzioni a schermo per riavvio e acquisizione.
  • Uso di profili .wprp personalizzati (se disponibili): wpr -start "C:\Percorso\Profilo.wprp" -filemode

Le tracce .etl possono essere aperte su una postazione Windows 10/11 aggiornata con Windows Performance Analyzer (WPA), anche se la raccolta è avvenuta su un server più vecchio.

Soluzioni proposte (in dettaglio)

  1. Verifica corrispondenza di versioni
    • Se l’OS è < 1709: installa un WPT della stessa epoca (es. 1607) oppure aggiorna l’OS.
    • Se l’OS è ≥ 1709: mantieni WPT aggiornato; in caso di errore, prosegui con i passi successivi.
  2. Reinstalla il Windows Performance Toolkit
    • Disinstalla tutte le voci “Windows Performance Toolkit/Analyzer”.
    • Riavvia, elimina cartelle residue, reinstalla con l’ADK scegliendo solo WPT.
  3. Installa/aggiorna le dipendenze
    • Visual C++ Redistributable 2015‑2022 (x86 e x64).
    • Ultimi aggiornamenti Windows tramite Impostazioni → Windows Update → Verifica aggiornamenti.
  4. Esegui WRPUI.exe come amministratore
    • Talvolta le librerie UIA non vengono caricate senza privilegi elevati.
  5. Controllo e riparazione dei file di sistema sfc /scannow DISM /Online /Cleanup-Image /RestoreHealth

Diagnostica rapida: script e verifiche

Comandi PowerShell per ridurre i tempi di analisi:

# 1) Versione del sistema
Get-ComputerInfo | Select-Object OsName, OsVersion, OsBuildNumber

2) Versioni delle DLL critiche (UIA e WPR UI)

Get-Item "$env:windir\System32\uiautomationcore.dll" |
Select-Object FullName,@{N='Version';E={$_.VersionInfo.FileVersion}}

Get-Item "C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\WindowsPerformanceRecorderUI.dll" |
Select-Object FullName,@{N='Version';E={$_.VersionInfo.FileVersion}}

3) Kit Windows installati (per farsi un’idea della “famiglia” WPT disponibile)

Get-ChildItem "C:\Program Files (x86)\Windows Kits" -Directory |
Select-Object FullName, Name

Buone pratiche operative

  • Non “spostare” cartelle del WPT tra macchine diverse: i binari dipendono da componenti di sistema e registrazioni COM locali.
  • Esegui la raccolta sul server ma analizza su una workstation aggiornata: riduci l’impatto e sfrutti WPA più recente.
  • Documenta le versioni: annota build OS, versione WPT, versione di uiautomationcore.dll; velocizza la collaborazione tra team.
  • Evita DLL “third‑party” di UIA: copie legacy lasciate da vecchi software sono una causa comune di shadowing.

FAQ

Posso usare l’ultima versione del WPT su Windows Server 2016?
Non è consigliato: le build moderne invocano API UIA assenti in Server 2016. Usa WPT 1607 o aggiorna l’OS.

La sola reinstallazione del WPT risolve sempre?
No. Se l’OS è incompatibile, l’errore persiste. La reinstallazione è utile quando la causa è un danneggiamento o una dipendenza mancante.

La riga di comando raccoglie le stesse informazioni?
Sì, wpr.exe usa gli stessi profili ETW della GUI. L’analisi si effettua con WPA anche su un PC diverso.

Devo installare sia x86 sia x64 dei ridistribuibili VC++?
Sì, molte applicazioni a 64 bit dipendono ancora da componenti a 32 bit o installano strumenti misti.

Checklist finale (riepilogo operativo)

  1. Verifica che il sistema sia almeno Windows 10 1709 / Server 2019. Se non puoi aggiornarlo, installa un WPT della stessa era (es. 1607 per Server 2016).
  2. Disinstalla e reinstalla WPT; assicurati di avere i Visual C++ Redistributable 2015‑2022 aggiornati (x86 e x64).
  3. Applica le patch di sistema, esegui sfc e DISM, quindi prova ad avviare nuovamente Windows Performance Recorder come amministratore.
  4. Se l’errore persiste, usa wpr.exe per raccogliere le tracce e analizzale con WPA su una macchina aggiornata.

Esempi d’uso pratici di wpr.exe

Di seguito alcune ricette “copy & paste” per iniziare subito:

ObiettivoComandoNote
Traccia generale (CPU+I/O)wpr -start GeneralProfile -filemodeProfilo bilanciato, basso overhead.
Ispezione CPU intensawpr -start CPU -filemodeCampionamento CPU dettagliato; limita la durata.
Scenario avviowpr -onoffscenario Boot -filemodeSegui le istruzioni a schermo per il riavvio e il salvataggio della traccia.
Stop e salvataggiowpr -stop C:\Traces\trace.etlChiude la sessione corrente e genera il file .etl.

Modello decisionale rapido

  • OS < 1709: WPT “nuovo” non parte → installa WPT 1607 o usa wpr.exe.
  • OS ≥ 1709: WPT nuovo dovrebbe partire → se non parte: reinstalla WPT → aggiorna VC++/.NET → SFC/DISM → controlla conflitti → valuta policy di sicurezza.
  • Ambiente server critico: preferisci sempre wpr.exe per ridurre dipendenze e impatto.

Conclusioni

L’errore “UiaRaiseNotificationEvent – Entry Point not Found” su WRPUI.exe è quasi sempre il sintomo di una mancata corrispondenza tra WPT e sistema operativo. Una volta allineate le versioni (o spostata l’acquisizione su una macchina aggiornata), la raccolta e l’analisi delle tracce tornano affidabili. Nei rari casi in cui la compatibilità è corretta ma la GUI non parte, la combinazione di reinstallazione pulita, aggiornamento delle dipendenze, SFC/DISM e verifica dei conflitti di DLL porta nella pratica alla risoluzione.


Indice