Windows 11 : corriger l’erreur « Application Popup » ID 1060 (WsResetDevice.sys) au démarrage

À chaque démarrage de Windows 11, l’Observateur d’événements affiche « Application Popup / ID 1060 ». Ce guide pas‑à‑pas montre comment identifier et supprimer la référence orpheline WsResetDevice.sys dans le Registre pour retrouver un démarrage propre et silencieux.

Sommaire

Symptômes observés

Dans Observateur d’événementsJournaux WindowsSystème, plusieurs événements « Application Popup » avec l’ID 1060 apparaissent à chaque boot. Le message pointe un pilote introuvable :

\SystemRoot\SysWow64\DRIVERS\WsResetDevice.sys

Les commandes d’intégrité système ne détectent rien d’anormal :

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

Dans Gestionnaire de périphériques, aucun périphérique n’est en défaut.

Cause technique (en bref)

Windows tente de charger un filtre de pilote déclaré dans la valeur UpperFilters ou LowerFilters d’une classe de périphériques et échoue si le binaire n’existe plus sur le disque. Ici, la clé de classe USB :

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{36fc9e60-c465-11cf-8056-444553540000}

contient UpperFilters = WsResetDevice.sys. Ce pilote n’est pas standard ; il s’agit d’un résidu d’un logiciel tiers ou d’un utilitaire lié à la réinitialisation du Microsoft Store. Résultat : à chaque démarrage, Windows journalise l’erreur 1060.

Solution rapide : vue d’ensemble

Voici l’itinéraire de résolution, du diagnostic à la correction définitive.

ÉtapeObjectifAction détaillée
Tester avec un nouveau compte localIsoler un problème de profil utilisateurOuvrir cmd en admin :
net user <Nom> <MotDePasse> /add Se connecter avec ce compte et vérifier l’Observateur d’événements.
→ Si l’erreur disparaît, le profil d’origine est en cause.
Identifier l’entrée fautiveLocaliser la référence au pilote manquantClé : ...Control\Class\{36fc9e60-c465-11cf-8056-444553540000} (USB).
Valeur : UpperFilters = WsResetDevice.sys.
Sauvegarder puis supprimer l’entréeÉliminer la référence orphelineCréer un point de restauration ou exporter la clé. Supprimer la valeur UpperFilters si elle ne contient que WsResetDevice.sys, sinon retirer uniquement cet élément de la liste multi‑chaînes.
Redémarrer et contrôlerValider la résolutionAprès redémarrage, l’événement 1060 ne doit plus apparaître.
(Optionnel) Démarrage en mode minimalDétecter un logiciel tiers qui réécrirait l’entréeEffectuer un Clean Boot via msconfig puis réactiver services/programmes un à un si l’erreur revenait.
(Optionnel) Réparation sur placeRestaurer les composants Windows sans perte de donnéesLancer setup.exe depuis une ISO de la même version de Windows 11 et choisir Conserver fichiers et applications.

Procédure détaillée pas à pas

Créer un point de restauration (recommandé)

Avant toute modification du Registre :

  1. Rechercher « Créer un point de restauration » → sélectionner le lecteur système → ConfigurerActiver la protection du système.
  2. Cliquer sur Créer et nommer le point (ex. : « Avant suppression UpperFilters »).

En PowerShell (admin), si la Protection du système est active :

Checkpoint-Computer -Description "Avant-UpperFilters-USB" -RestorePointType "MODIFY_SETTINGS"

Tester rapidement avec un nouveau compte local

Ce test élimine toute corruption spécifique au profil utilisateur original.

net user TestLocal P@ssw0rd! /add

Se connecter avec TestLocal, ouvrir l’Observateur d’événements → Système et filtrer sur l’ID 1060. Si l’erreur n’apparaît pas, revenez sur le profil principal et poursuivez la correction de la clé de classe.

Trouver l’entrée UpperFilters problématique

Deux méthodes complémentaires :

Méthode graphique (Regedit)

  1. Ouvrir regedit (Win+R → regedit).
  2. Aller à : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{36fc9e60-c465-11cf-8056-444553540000}.
  3. Dans le panneau droit, repérer UpperFilters. Si la donnée vaut WsResetDevice.sys (ou contient ce nom parmi d’autres), c’est la source de l’erreur.

Méthode en ligne de commande (rapide et traçable)

En CMD (admin) :

reg query "HKLM\SYSTEM\CurrentControlSet\Control\Class\{36fc9e60-c465-11cf-8056-444553540000}" /v UpperFilters

En PowerShell (admin) :

$k = 'HKLM:\SYSTEM\CurrentControlSet\Control\Class\{36fc9e60-c465-11cf-8056-444553540000}'
(Get-ItemProperty -Path $k -Name UpperFilters -ErrorAction SilentlyContinue).UpperFilters

Si vous souhaitez élargir la recherche à toutes les classes de périphériques pour repérer d’éventuelles références orphelines supplémentaires :

Get-ChildItem 'HKLM:\SYSTEM\CurrentControlSet\Control\Class' |
  ForEach-Object {
    $uf = (Get-ItemProperty -Path $_.PsPath -Name UpperFilters -ErrorAction SilentlyContinue).UpperFilters
    if ($uf -and ($uf -match 'WsResetDevice(\.sys)?')) {
      [PSCustomObject]@{ Classe = $_.PSChildName; Cle = $_.PsPath; UpperFilters = ($uf -join ', ') }
    }
  } | Format-Table -AutoSize

Sauvegarder puis supprimer (ou corriger) UpperFilters

Important : la valeur UpperFilters est de type REG_MULTI_SZ (liste). Il existe deux cas :

  • La valeur ne contient que WsResetDevice.sys : vous pouvez supprimer entièrement UpperFilters.
  • La valeur contient d’autres filtres légitimes (ex. : d’un antivirus, d’un pilote clavier/souris avancé) : supprimez uniquement l’entrée WsResetDevice.sys et laissez les autres intactes.

Exporter d’abord la clé (filet de sécurité)

reg export "HKLM\SYSTEM\CurrentControlSet\Control\Class\{36fc9e60-c465-11cf-8056-444553540000}" "%USERPROFILE%\Desktop\USB_Class_Backup.reg" /y

Suppression via Regedit

  1. Double‑cliquez sur UpperFilters.
  2. Si WsResetDevice.sys est le seul élément, cliquez sur Supprimer (entièrement) la valeur UpperFilters.
  3. Sinon, supprimez uniquement la ligne WsResetDevice.sys dans la liste, puis validez.

Suppression ciblée en PowerShell (propre et scriptable)

Le bloc suivant retire WsResetDevice.sys tout en préservant les autres filtres, ou supprime complètement UpperFilters s’il ne restait que cette chaîne.

$key = 'HKLM:\SYSTEM\CurrentControlSet\Control\Class\{36fc9e60-c465-11cf-8056-444553540000}'
$val = (Get-ItemProperty -Path $key -Name UpperFilters -ErrorAction SilentlyContinue).UpperFilters
if ($val) {
  $new = $val | Where-Object { $_ -notmatch '^WsResetDevice(\.sys)?$' }
  if ($new.Count -eq 0) {
    Remove-ItemProperty -Path $key -Name UpperFilters -ErrorAction SilentlyContinue
    Write-Host "UpperFilters supprimé (ne contenait que WsResetDevice.sys)."
  } else {
    Set-ItemProperty -Path $key -Name UpperFilters -Value $new
    Write-Host "WsResetDevice.sys retiré. Autres filtres conservés: $($new -join ', ')"
  }
} else {
  Write-Host "Aucune valeur UpperFilters détectée."
}

Redémarrer et contrôler

Redémarrez le PC puis vérifiez :

  1. Observateur d’événements → SystèmeFiltrer le journal courant…ID des événements : 1060, Source : Application Popup.
  2. Le journal doit être vierge de nouveaux 1060. Les anciens événements restent visibles, c’est normal.

Contrôle rapide en PowerShell :

Get-WinEvent -LogName System | Where-Object { $_.Id -eq 1060 -and $_.ProviderName -eq 'Application Popup' } | Select-Object TimeCreated, Message -First 10

(Optionnel) Empêcher la réapparition : démarrage en mode minimal

Si un logiciel réécrit la valeur à chaque démarrage :

  1. Win+R → msconfig → onglet Services → cocher Masquer tous les services MicrosoftDésactiver tout.
  2. Onglet DémarrageOuvrir le Gestionnaire des tâches → désactiver les éléments non essentiels.
  3. Redémarrer et observer si l’ID 1060 revient. Réactiver progressivement pour isoler l’élément fautif.

(Optionnel) Réparation sur place de Windows 11

Si l’erreur persiste malgré tout (cas rare), exécutez une réparation sur place :

  1. Monter une image ISO de la même édition/version de Windows 11.
  2. Lancer setup.exe → choisir Conserver fichiers et applications.
  3. Suivre l’assistant. À l’issue, revérifier l’ID 1060.

Pourquoi l’erreur survient‑elle ?

La valeur UpperFilters/LowerFilters permet à des pilotes « filtre » d’intercepter ou d’étendre les opérations d’une pile de périphériques (ici, classe USB Device). Si le fichier .sys associé au service référencé a été supprimé (désinstallation incomplète, nettoyage agressif, etc.), Windows conserve l’entrée dans le Registre mais ne peut plus charger le pilote au démarrage : l’événement « Application Popup »/1060 est alors émis.

Le GUID {36fc9e60-c465-11cf-8056-444553540000} identifie la classe USB. WsResetDevice.sys n’est pas livré par Windows ; c’est typiquement un résidu d’outil tiers ou d’un composant associé au reset du Microsoft Store, resté orphelin après une mise à jour ou une désinstallation.

Mesures préventives

  • Créer un point de restauration avant toute modification du Registre.
  • Mettre à jour régulièrement pilotes et firmwares depuis les sources officielles.
  • Désinstaller proprement les logiciels de périphériques (utilitaire de désinstallation dédié, ou Applications et fonctionnalités).
  • Énumérer périodiquement les pilotes installés : pnputil /enum-drivers
  • Effectuer un scan antivirus/antimalware si un binaire système inconnu est mentionné dans un événement.

Scripts prêts à l’emploi

Audit + correction automatisée (avec sauvegarde)

Ce script PowerShell (à exécuter en admin) crée un point de restauration, sauvegarde les clés concernées, puis retire uniquement WsResetDevice.sys de toutes les classes où il serait présent.

# 1) Point de restauration (si activé)
try { Checkpoint-Computer -Description "Fix-1060-UpperFilters" -RestorePointType "MODIFY_SETTINGS" } catch {}

# 2) Parcours des classes

$root = 'HKLM:\SYSTEM\CurrentControlSet\Control\Class'
$find = 'WsResetDevice(.sys)?'
$hits = @()

Get-ChildItem $root | ForEach-Object {
$uf = (Get-ItemProperty -Path $*.PsPath -Name UpperFilters -ErrorAction SilentlyContinue).UpperFilters
if ($uf -and ($uf -match $find)) {
$hits += $*
}
}

if ($hits.Count -eq 0) {
Write-Host "Aucune référence UpperFilters à WsResetDevice.sys trouvée."
return
}

# 3) Sauvegarde + correction

foreach ($h in $hits) {
$pathReg = $h.PSPath
$pathTxt = $h.Name
$backup = "$env:USERPROFILE\Desktop\Backup-$($h.PSChildName)-UpperFilters.reg"

# Export .reg

& reg.exe export ($pathTxt -replace 'HKEY_LOCAL_MACHINE','HKLM') $backup /y | Out-Null

$uf = (Get-ItemProperty -Path $pathReg -Name UpperFilters -ErrorAction SilentlyContinue).UpperFilters
$new = $uf | Where-Object { $_ -notmatch '^WsResetDevice(.sys)?$' }

if ($new.Count -eq 0) {
Remove-ItemProperty -Path $pathReg -Name UpperFilters -ErrorAction SilentlyContinue
Write-Host "[$($h.PSChildName)] UpperFilters supprimé (ne contenait que WsResetDevice.sys). Sauvegarde: $backup"
} else {
Set-ItemProperty -Path $pathReg -Name UpperFilters -Value $new
Write-Host "[$($h.PSChildName)] WsResetDevice.sys retiré. UpperFilters = $($new -join ', '). Sauvegarde: $backup"
}
} 

Vérifier l’absence de nouveaux événements 1060

Get-WinEvent -LogName System |
  Where-Object { $_.Id -eq 1060 -and $_.ProviderName -eq 'Application Popup' } |
  Select-Object TimeCreated, Id, ProviderName, Message -First 20

Bonnes pratiques d’édition du Registre

  • Ne supprimez jamais des filtres de sécurité/antivirus reconnus sans certitude. Recherchez d’abord la documentation du fournisseur.
  • Conservez vos fichiers .reg de sauvegarde jusqu’à stabilisation complète du système.
  • Si vous voyez aussi une clé de service orpheline (ex. : HKLM\SYSTEM\CurrentControlSet\Services\WsResetDevice) sans ImagePath valide, supprimez-la après sauvegarde pour éviter d’autres avertissements.

Dépannage avancé

Le message mentionne un autre chemin que SysWow64

L’événement peut référencer \SystemRoot\System32\drivers\... ou un chemin complet. La logique reste la même : rechercher la valeur de filtre (souvent le nom du service du pilote, avec ou sans suffixe .sys) et corriger la liste.

La valeur UpperFilters contient plusieurs entrées

C’est normal pour certaines piles (clavier, stockage, USB). Supprimez uniquement l’entrée orpheline. Le script ci‑dessus gère ce cas automatiquement.

Le fichier WsResetDevice.sys existe réellement

Si le binaire est présent mais invalide/signature corrompue, préférez la suppression de la référence (UpperFilters) plutôt que la réinstallation du pilote, à moins d’avoir le package d’origine et un besoin fonctionnel légitime. L’objectif est de restaurer une pile USB saine et standard.

Après correction, l’erreur réapparaît au prochain boot

Un service ou un logiciel réinjecte la valeur. Utilisez un Clean Boot, l’outil Autoruns (onglets Drivers/Services) ou un traçage de modifications du Registre (ex. : Planificateur de tâches + export périodique de la clé) pour identifier l’auteur. Désinstallez ou reconfigurez l’élément en cause.

Vérifications post‑correction

  • Démarrage à froid → aucun nouvel événement 1060.
  • Les périphériques USB (stockage, clavier/souris, hubs) fonctionnent normalement.
  • pnputil /enum-drivers ne liste pas de package inexistant apparent.
  • Les outils de diagnostic SFC/DISM restent « intègres ». Aucun impact attendu.

FAQ courte

« Application Popup », c’est quoi ?
C’est une source d’événements du journal Système qui signale des alertes au démarrage ou en session, par exemple l’absence d’un pilote attendu.

Pourquoi l’erreur ne s’affiche‑t‑elle pas à l’écran ?
Parce que c’est un message de journalisation silencieuse, non bloquant : l’OS poursuit le démarrage mais consigne l’incident.

Supprimer complètement UpperFilters, est‑ce risqué ?
Uniquement si d’autres entrées utiles y figurent. D’où la sauvegarde préalable et la suppression ciblée de WsResetDevice.sys quand c’est une liste multi‑chaînes.

Et si le GUID de classe est différent ?
La méthode demeure : chercher UpperFilters/LowerFilters dans la classe qui journalise l’erreur, puis retirer l’entrée orpheline.

Résumé express

  • L’ID 1060 se déclenche quand un filtre de pilote déclaré n’existe plus sur le disque.
  • Dans ce cas, WsResetDevice.sys est référencé dans la classe USB {36fc9e60-...}.
  • Sauvegarder, supprimer UpperFilters (ou seulement l’élément incriminé), redémarrer.
  • Contrôler l’absence de nouveaux 1060. En cas de récidive, isoler un logiciel qui réécrit l’entrée.

Cas pratique complet (exemple consolidé)

  1. Créer un point de restauration et exporter la clé de classe USB.
  2. Vérifier la présence de WsResetDevice.sys dans UpperFilters.
  3. Supprimer l’entrée via Regedit ou PowerShell (préserver les autres filtres).
  4. Redémarrer et auditer le journal Système pour l’ID 1060.
  5. Prévenir la réapparition (Clean Boot si nécessaire, désinstallation propre des logiciels de pilotes).

Résultat attendu

Après suppression de la référence orpheline UpperFilters = WsResetDevice.sys dans la classe USB, le journal Système ne contient plus de nouveaux événements Application Popup / ID 1060. Le démarrage redevient propre et silencieux, sans impact négatif sur les périphériques USB.


Annexe : commandes utiles (mémo)

ButCommande
Lister l’événement 1060Get-WinEvent -LogName System | ? {$_.Id -eq 1060 -and $_.ProviderName -eq 'Application Popup'}
Exporter la clé de classe USBreg export "HKLM\...\{36fc9e60-c465-11cf-8056-444553540000}" "%USERPROFILE%\Desktop\USB_Class_Backup.reg" /y
Lire UpperFilters (CMD)reg query "HKLM\...\{36fc9e60-c465-11cf-8056-444553540000}" /v UpperFilters
Lire UpperFilters (PowerShell)(gp "HKLM:\...\{36fc9e60-c465-11cf-8056-444553540000}").UpperFilters
Créer un point de restaurationCheckpoint-Computer -Description "Fix-1060" -RestorePointType "MODIFY_SETTINGS"
Énumérer les pilotes installéspnputil /enum-drivers

En appliquant cette procédure méthodique (sauvegarde, suppression ciblée, contrôle), vous éliminez de façon durable l’erreur « Application Popup / ID 1060 » liée à WsResetDevice.sys sous Windows 11, sans perturber la pile USB ni les autres pilotes légitimes.

Sommaire