Die eigentliche Ursache für das Blinken der HDD-LED auf meinem Acer-Notebook war der interne Dienst BrcmCardReader mit dem langen Namen Broadcom Card Reader Service. Sobald ich den Dienst beendet habe, hörte auch das Blinken auf. Und natürlich musste ich die CD-ROM nicht deaktivieren oder die LED mit dem Klebeband abdecken, um dies zu erreichen. Im Gegensatz zu den anderen Beiträgen hier ist das Betriebssystem selbst nicht so schlecht geschrieben, um etwas abzufragen. Aber dieser von Broadcom geschriebene Dienst ist eine andere Geschichte.
Ich habe zuerst versucht, herauszufinden, was das Blinken verursacht, nur um festzustellen, dass es so etwas wie wbem wmiprvse.exe war, das Dinge wie IRP_MJ_QUERY_INFORMATION
und IRP_MJ_QUERY_VOLUME_INFORMATION
für jedes Laufwerk ausführte . Da ich wusste, dass wmiprvse tatsächlich eine von Microsoft geschriebene WMI-Ausführungskomponente ist, habe ich sogar versucht, mithilfe des Ereignisprotokolls die WMI-Aktivität zu verfolgen, wie in MSDN dokumentiert. Es war nicht sinnvoll, ich konnte nur beobachten
ProviderInfo for GroupOperationId = 101; Operation = Provider::CreateInstanceEnum - CIMWin32 : Win32_LogicalDisk; HostID = 2368; ProviderName = CIMWin32; ProviderGuid = {d63a5850-8f16-11cf-9f47-00aa00bf345c}; Path = %systemroot%\system32\wbem\cimwin32.dll
Microsoft leistet in dieser Ablaufverfolgung offensichtlich schlechte Arbeit: Das CIMWin32, die Host-ID, die Provider-Guid und der Pfad verweisen alle auf die Binärdatei, die das WMI ausführt, und nicht auf das Programm, das WMI-Abfragen durchführt. In diesem Moment konnte ich nicht feststellen, dass der Broadcom Card Reader Service dies tut, da nichts darauf hinweist. Deshalb zitiere ich all dies, um die Schmerzen für jeden zu lindern, der diese Artikel in die Suchmaschine einfügt. Diese Unfähigkeit zu sehen, wer die Aktivität tatsächlich befiehlt, ist auch die Erklärung, warum einige Leute hier behaupten, dass es sich um ein Betriebssystem handelt: Wer an dieser Stelle anhält, sieht nichts anderes. Aber ich wusste, dass wmiprvse es nicht selbst macht, ich wusste, dass es einen anderen Prozess geben muss, der befiehlt.
Eines Tages, nachdem ich ein Image-Backup meines gesamten Systems erstellt hatte, begann ich mit der Brute-Force-Methode und schaltete die Dinge nacheinander aus, bis das Blinken aufhörte. Jetzt bin ich mir sicher. Es ist der Broadcom Card Reader Service . Und da ich eigentlich ein Programmierer bin, habe ich sogar die Strings im Inneren untersucht c:\Program Files\Broadcom\MemoryCard\BrcmCardReader.exe
und herausgefunden, was es genau tut, sobald es eingeschaltet ist:
SELECT * FROM __InstanceDeletionEvent WITHIN 1 WHERE TargetInstance ISA 'Win32_LogicalDisk'
SELECT * FROM __InstanceCreationEvent WITHIN 0.1 WHERE TargetInstance ISA 'Win32_LogicalDisk'
Da das Blinken so regelmäßig auftritt, ist es offensichtlich, dass kontinuierlich abgefragt wird . Das ist eine unglaublich schlechte Programmierung des Dienstes. Beachten Sie die WITHIN- Klausel in den Abfragen. Insbesondere dokumentiert Microsoft, wie sich solche Konstrukte in der WMI verhalten:
http://technet.microsoft.com/en-us/magazine/2006.09.wmievents.aspx
Beachten Sie, dass die WITHIN-Klausel das Abfrageintervall für intrinsische Ereignisklassen angibt. Da die überwachte Klasse keinen entsprechenden Ereignisanbieter hat, wird der WMI-Abfragemechanismus verwendet, um regelmäßig zu überprüfen, ob für die bestimmte Klasse ein intrinsisches Ereignis aufgetreten ist. Dieses Abfrageintervall wird durch das Schlüsselwort WITHIN angegeben und in Sekunden gemessen.
Also ich weiß jetzt , dass Broadcom Service - Programmierer für die zu Umfrage entschieden __InstanceDeletionEvent
von jedem logischen Datenträger jeder Sekunde und __InstanceCreationEvent
sogar 10 - mal pro Sekunde ! Und es gelingt ihnen, COM einzubeziehen, Prozesse zu trennen und dies über WMI / wmiprvse in einer Weise zu tun, dass es nicht zu beobachten ist (zumindest habe ich nicht herausgefunden), dass ihr Dienst dies tut!
Schlechte, erstaunlich schlechte Programmierung.
Und es gibt die richtige Lösung für Dienste und Anwendungen: RegisterDeviceNotification
. Eine echte Benachrichtigung (d. H. Leise, wenn nichts Neues passiert) kann von den Diensten über das SERVICE_CONTROL_DEVICEEVENT
Ereignis empfangen werden . Siehe zum Beispiel:
/programming/706352/use-registerdevicenotification-for-all-usb-devices
Nachdem ich das alles gewusst habe, gibt die Suche nach dem Broadcom Card Reader Service tatsächlich ein paar Posts von Leuten zurück, die ihn früher entdeckt haben: auf community.acer.com (ich zitiere die Posts, für die ich keine Permalinks gefunden habe):
"Vladan Re: Aspire 5750Z Kartenleser Treiber, Win 8 29.11.2012 06:29
Gerade entdeckt, dass der Broadcom Card Reader Service dazu führt, dass die Festplatte die ganze Zeit über mehrmals pro Sekunde blinkt. Das Beenden und Einstellen dieses Dienstes auf "Manuell" oder "Deaktiviert" behebt das Blinkproblem, ohne die Funktionalität des Kartenlesers zu beeinträchtigen. "
auf dem bleepingcomputer.com:
"Cheesenbranston Gepostet 28. Mai 2013 - 04:47 Uhr
Ich hatte ein ähnliches Problem seit der Installation von Win8 pro x64 als Neuinstallation, dh kein Upgrade. Im Task-Manager lag der Datenträgerdurchsatz, obwohl er nicht besonders hoch zu sein schien, konstant bei 100%. Ich glaube, ich habe das Problem als Broadcom-Kartenleserdienst identifiziert . "
und auf Amazon.de eine Rezension von SJ Harvey am 1. Februar 2013:
http://www.amazon.co.uk/review/R3GZB5OXP4SNP7/ref=cm_cr_rdp_perm?ie=UTF8&ASIN=B009QZCYU4&linkCode=&nodeID=&tag=
Das einzige, was mich WIRKLICH nervte (man beachte die Vergangenheitsform), war, dass die Laufwerksanzeige ständig flackerte. Es war keine Festplattenaktivität und nach ein paar Stunden spürte ich den Täter auf. Es war der Broadcom-Kartenleserdienst .
Er schlägt außerdem vor, den Dienst auf manuell umzustellen. Auf meinem Computer musste ich ihn jedoch vollständig deaktivieren.
Abgesehen davon, dass nur die Festplatten-LED blinkt, wurde sogar ein höherer Ressourcenverbrauch gemeldet.
Die endgültige Lösung: Deaktivieren Sie den " Broadcom Card Reader Service " : Gehen Sie in den Diensten zu seinen Eigenschaften, beenden Sie ihn und ändern Sie seinen Starttyp in "deaktiviert". Das Blinken hört endlich auf. Ich würde wirklich gerne wissen, wozu es überhaupt dient - was mir fehlt, wenn ich es ausschalte? Wenn man bedenkt, wie schlecht es programmiert ist, würde es mich nicht wundern, dass der gesamte Zweck des Dienstes darin besteht, ein Symbol zu ändern, wenn die Speicherkarte eingesetzt wird! Ich bin mir sicher, dass der Missbrauch des WMI eine sehr schlechte Programmierung ist.