2016-05-24 7 views
0

J'ai créé une extension Shell qui ajoute des icônes aux fichiers et aux dossiers. Cependant, je suis confronté à des problèmes lors de l'utilisation de OneDrive for Business sur mon système. Lorsque j'ouvre le dossier partagé OneDrive, l'explorateur se bloque avec l'erreur: enter image description hereExtension du shell entraînant le crash de l'explorateur avec OneDrive for Business

Le problème est uniquement résolu lorsque je désenregistre mon extension Shell. J'ai essayé de débogage l'accident et de voir qu'il ne se réfère pas mon extension dll du tout:

enter image description here

Est mon extension défectueuse? Ou est-ce un problème de Microsoft? Le nombre de superpositions enregistrées est inférieur à la limite. J'ai même essayé de renommer les overlays OneDrive pour leur donner des priorités, mais le problème existe toujours.

+0

Les extensions Shell sont chargées dans l'espace de processus explorer.exe. Si votre extension se bloque ou appelle 'exit()', elle prendra l'explorateur avec elle. –

+0

* Mon extension est-elle défectueuse? * Probablement. Explorer est assez bien testé, donc je dirais que la faute de Microsoft est faible. Sans code, personne ici ne peut répondre avec certitude. –

+0

@RyanBemrose Dans mon cas, il n'entre pas dans mes Dll d'extension Shell avant le crash. L'accès au dossier OneDrive for Business provoque le blocage. – Peaked

Répondre

1

J'ai finalement réussi à trouver une solution. Le problème était que je créais un objet pointeur pour chaque vérification d'icône de recouvrement (et publié immédiatement après). Comme la vérification de l'icône de superposition est une opération multithread, de nombreux objets ont été créés simultanément.

Un lecteur pour entreprise tente d'effectuer une opération de GC (nécessitant une mémoire importante) qui échoue lorsqu'il existe de nombreux pointeurs. Une exception d'insuffisance de mémoire est levée et l'explorateur se bloque. J'utilise maintenant un objet pointeur commun pour toutes les vérifications de superposition d'icônes et cela résout le problème.