Sdílet prostřednictvím


Použití WER

Počínaje systémem Windows Vista systém Windows ve výchozím nastavení poskytuje chybové ukončení, nereagování a zasílání zpráv o chybách jádra bez nutnosti změn v aplikaci. Sestava bude v případě potřeby obsahovat informace o minidumpu a výpisu paměti haldy. Aplikace místo toho používají rozhraní WER API k odesílání zpráv o problémech specifických pro aplikaci do Microsoftu.

Vzhledem k tomu, že Systém Windows automaticky hlásí neošetřené výjimky, aplikace by neměla zpracovávat závažné výjimky. Pokud je chybující nebo nereagující proces interaktivní, zobrazí weR uživatelské rozhraní informující uživatele o problému. Aplikace se považuje za nereagující, pokud nereaguje na zprávy systému Windows po dobu pěti sekund, když se uživatel pokouší s aplikací pracovat.

Proces zasílání zpráv o chybách systému Windows pro pády, neodpovídání a chyby jádra

Následující příklad ukazuje kroky, ke kterým dochází v případě chybového ukončení aplikace, nereagování nebo chyby jádra.

  1. Dochází k problémové události.
  2. Operační systém vyvolá WER.
  3. WER shromažďuje data, sestaví zprávu a vyzve uživatele k vyjádření souhlasu (v případě potřeby).
  4. Pokud uživatel souhlasil, WER odešle sestavu společnosti Microsoft (Watson Server).
  5. Pokud server Watson požaduje další data, weR shromažďuje data a vyzve uživatele k vyjádření souhlasu (v případě potřeby).
  6. Pokud se aplikace zaregistrovala k obnovení a restartování, weR spustí registrované funkce zpětného volání, zatímco se data komprimují a odesílají do Microsoftu (pokud uživatel souhlasil).
  7. Pokud je odpověď na problém dostupná od Microsoftu, zobrazí se uživateli oznámení.

Aplikace mohou použít následující funkce k přizpůsobení obsahu sestavy odesílané společnosti Microsoft. Funkce registrace říkají WER, aby do protokolu o chybě zahrnul konkrétní soubory a bloky paměti, který vytváří.

Proces hlášení chyb systému Windows pro obecné oznamování událostí

Následující kroky ukazují, jak můžou aplikace získat zprávu o chybách pro ne závažnou chybovou podmínku.

  1. Dojde k nefaktálnímu problému.
  2. Aplikace rozpozná událost a použije k vygenerování sestavy následující posloupnost volání funkcí.
    1. Vytvořte sestavu voláním funkce WerReportCreate.
    2. Zavolejte funkci WerReportSetParameter pro nastavení parametrů sestavy.
    3. Zavolejte funkci WerReportAddFile pro přidání souborů do sestavy.
    4. Zavolejte funkci WerReportAddDump a přidejte do sestavy minidump (pokud je to potřeba).
    5. Zavolejte funkci WerReportSubmit pro odeslání sestavy.
    6. Volejte WerReportCloseHandle k uvolnění prostředků.
  3. V závislosti na konkrétních možnostech používaných při volání funkcí v kroku 2 dokončí weR hlášení chyb. WER zajistí, aby se hlášení provádělo v souladu se zásadami nastavenými uživatelem. Například WER odešle zprávu Microsoftu, zařadí ji do fronty a zobrazí odpovídající uživatelské rozhraní uživateli.

Vyloučení aplikace ze zasílání zpráv o chybách systému Windows

Pokud chcete vyloučit aplikaci ze zasílání zpráv o chybách systému Windows, použijte funkci WerAddExcludedApplication. K obnovení hlášení chyb pro vaši aplikaci použijte funkci WerRemoveExcludedApplication.

Automatické obnovení dat a restartování chybné aplikace

Aplikace může pomocí obnovení a restartování aplikace ukládat data a informace o stavu před ukončením aplikace kvůli neošetřené výjimce nebo když aplikace přestane reagovat. Aplikace se také restartuje, pokud je požadována. Podrobnosti najdete v tématu obnovení a restartování aplikace.

Starší rozhraní API

Aplikace může nahlásit chybu voláním funkce ReportFault. Neměli byste však používat funkci ReportFault, pokud nemáte velmi konkrétní požadavek, aby výchozí chování při hlášení chyb operačního systému nemohlo splnit.

Pokud je povoleno zasílání zpráv o chybách, systém zobrazí uživateli dialogové okno, které indikuje, že aplikace narazila na problém a zavře. Pokud je v klíči HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug nakonfigurovaný ladicí program, uživatel má možnost spustit ladicí program. Uživatel má také možnost odeslat zprávu Microsoftu. Pokud uživatel odešle sestavu, systém zobrazí další dialogové okno s poděkováním uživateli za sestavu a poskytnutím odkazu na další informace.

Systém zasílání zpráv o chybách podporuje následující režimy operací.

Režim operace Popis
Sestavování zpráv o sdílené paměti Pokud je kontext zabezpečení aplikace stejný jako kontext zabezpečení přihlášeného uživatele, systém zasílání zpráv o chybách používá pro komunikaci blok sdílené paměti. Tento režim nelze použít s režimem vykazování manifestu.
Sestavy manifestu Pokud kontext zabezpečení aplikace není stejný jako kontext zabezpečení přihlášeného uživatele, systém zasílání zpráv o chybách používá k komunikaci soubor. Tento režim se používá také k hlášení nereagujících aplikací a chyb jádra. Tento režim nelze použít s provozním režimem sdílené paměti.
Internetové zpravodajství Systém zasílání zpráv o chybách odesílá veškerá data do Microsoftu přes internet. Toto je výchozí režim operace. Nedá se použít s podnikovým režimem vykazování. Tento režim se používá, když není správcem nastavena podnikovou nahrávací cesta.
Podnikové výkaznictví Systém zasílání zpráv o chybách odesílá všechna data do sdílené složky místo toho, aby je nahrál přímo do Microsoftu. To umožňuje podnikovým správcům IT kontrolovat data před odesláním do Microsoftu. Tento režim se používá, když správce určí cestu k podnikovému nahrání. Nelze používat v režimu internetového hlášení.
Bezhlavé zpracování reportů Systém zasílání zpráv o chybách uživateli nezobrazí žádná dialogová okna. To umožňuje podnikovým správcům IT shromažďovat zprávy o chybách od svých zaměstnanců za všech okolností. Tento režim se používá, když správce povolí reporting, ale oznámení je zakázána. Lze použít pouze s podnikovým režimem výkaznictví.

Pokud chcete vyloučit aplikaci ze zasílání zpráv o chybách, použijte funkci AddERExcludedApplication.