2016-05-24 6 views
0

Ich habe eine Shell-Erweiterung erstellt, die den Dateien und Ordnern Icon-Overlays hinzufügt. Es treten jedoch Probleme auf, wenn ich OneDrive for Business auf meinem System verwende. Wenn ich öffnen Sie die Microsoft Onedrive freigegebenen Ordner, Explorer stürzt ab, mit Fehler: enter image description hereShell-Erweiterung, die dazu führt, dass Explorer mit OneDrive for Business abstürzt

Das Problem nur fixiert ist, wenn ich meine Shell-Erweiterung deregistrieren. Ich habe versucht das Debuggen den Absturz und sehen, dass es nicht meine Erweiterung dlls bezieht sich auf alle:

enter image description here

Ist meine Erweiterung defekt? Oder ist das ein Microsoft-Problem? Die Anzahl der registrierten Overlays liegt unter dem Grenzwert. Ich habe sogar versucht, die OneDrive-Overlays umzubenennen, um ihnen Prioritäten zu geben, aber das Problem besteht immer noch.

+0

Shell-Erweiterungen werden in den Prozessbereich explorer.exe geladen. Wenn Ihre Erweiterung abstürzt oder 'exit()' aufruft, wird Explorer benötigt. –

+0

* Ist meine Erweiterung fehlerhaft? * Wahrscheinlich. Der Explorer ist ziemlich gut getestet, also würde ich sagen, die Wahrscheinlichkeit, dass Microsoft die Schuld trifft, ist gering. Ohne Code kann niemand hier mit Sicherheit antworten. –

+0

@RyanBemrose In meinem Fall gibt es nicht meine Shell-Erweiterung Dlls vor dem Absturz. Der Zugriff auf den OneDrive for Business-Ordner verursacht den Absturz. – Peaked

Antwort

1

Ich konnte endlich eine Lösung finden. Das Problem war, dass ich für jeden Überlagerungssymbol-Check ein Zeigerobjekt erstellte (und sofort danach freigab). Da die Überlagerungssymbolprüfung eine Multithreadoperation ist, wurden viele Objekte gleichzeitig erstellt.

Ein Laufwerk für Business versucht, einige GC-Vorgänge durchzuführen (die erheblichen Arbeitsspeicher erfordern), die fehlschlagen, wenn viele Zeiger vorhanden sind. Eine Out of Memory-Ausnahme wird ausgelöst, und der Explorer stürzt ab.

Ich verwende jetzt ein gemeinsames Zeigerobjekt für alle Icon-Overlay-Prüfungen und löst das Problem.

Verwandte Themen