Windows Treiber, Event Log Eintrag ohne eigenen Message Catalog
-
Ich arbeite gerade an einem WDF Kernel Mode Treiber und würde darin gerne Event Log Einträge schreiben wenn etwas gröber schief geht - speziell bei der Initialisierung. Damit man ne Chance hat rauszubekommen was schief gegangen ist wenn das Device nicht starten mag.
Dummerweise kann ich dabei aber keinen eigenen Message-Catalog verwenden (macht Probleme beim Deployment).
Was gibt's für Alternativen? Die in
ntiologc.h
definierten Messages desIoLogMsg.dll
Katalogs passen alle irgendwie nicht. Ich bräuchte idealerweise eine generische "da ist was schief gegangen" Message bzw. was auch noch ginge wäre eine "Problem beim Starten/Initialisieren des Treibers/Geräts" Message.
-
Was ist das Problem beim Deployment?
Und bei den gegebenen Nachrichten passt nichts wo Du %1 %2 etc. ersetzt?
-
@Martin-Richter sagte in Windows Treiber, Event Log Eintrag ohne eigenen Message Catalog:
Was ist das Problem beim Deployment?
Auto-Update ist das Problem. Aktuell funktioniert das wunderbar. Sobald ich das .sys File als Message Catalog in die Registry eintrage, und im Event Log die Events angucke, bekomme ich "reboot required" beim Updaten des Treibers. Was ein absoluter Blocker für die Anwendung ist um die es geht. Mit einem eigenen externen Catalog hab' ich es nicht probiert, aber ich vermute dass dabei das selbe Problem beim Updaten des externen Catalog Files entsteht.
Und bei den gegebenen Nachrichten passt nichts wo Du %1 %2 etc. ersetzt?
Nein, leider nicht wirklich. Die Messages sind alle ziemlich spezifisch. Ich verwende jetzt aktuell
IO_WARNING_ALLOCATION_FAILED
für die meisten Meldungen. Die Meldung dafür ist "The driver failed to allocate memory.". Strings mit Details kann ich ja dazupacken. Die werden dann zwar nur in der Detail-Ansicht angezeigt aber das ist kein echtes Problem. Ist aber strenggenommen auch gelogen, da es keine Memory-Allocations sind die schief gehen sondern Dinge wie das Erzeugen von Locks oder Collections.
(Also nicht dass das häufig passiert, aber das sind die Fälle für dich ich Events schreiben können möchte. Damit man im Fall des Falles halt weiss was passiert ist.)
-
Also bei mir hat sich der Message Catalog bei unseren Diensten seit der ersten Erstellung nie geändert...
Also besteht ja auch kein Grund diesen zu aktualisieren... das ist ja zum Teil der Trick...
-
Eh Dummerweise funktioniert unserer Updater so dass er erstmal den Treiber komplett deinstalliert und dann wieder re-installiert. Und das sogar wenn sich am Treiber gar nichts geändert hat. Wäre zwar theoretisch möglich das zu ändern, aber praktisch steht der Aufwand einfach nicht dafür. Und zwar bei weitem nicht
Das, kombiniert damit dass es ein ziemlich übles Problem wäre wenn der Treiber nach dem Update nicht läuft, ...
Da verwende ich lieber weiterhin
IO_WARNING_ALLOCATION_FAILED
.