| // Copyright 2013 The Chromium Authors. All rights reserved. | 
 | // Use of this source code is governed by a BSD-style license that can be | 
 | // found in the LICENSE file. | 
 |  | 
 | #include <windows.h> | 
 |  | 
 | #include "chrome_elf/chrome_elf_main.h" | 
 |  | 
 | #include "chrome_elf/blacklist/blacklist.h" | 
 | #include "chrome_elf/breakpad.h" | 
 | #include "chrome_elf/ntdll_cache.h" | 
 |  | 
 | void SignalChromeElf() { | 
 |   blacklist::ResetBeacon(); | 
 | } | 
 |  | 
 | BOOL APIENTRY DllMain(HMODULE module, DWORD reason, LPVOID reserved) { | 
 |   if (reason == DLL_PROCESS_ATTACH) { | 
 |     InitializeCrashReporting(); | 
 |  | 
 |     __try { | 
 |       InitCache(); | 
 |       blacklist::Initialize(false);  // Don't force, abort if beacon is present. | 
 |     } __except(GenerateCrashDump(GetExceptionInformation())) { | 
 |     } | 
 |   } | 
 |  | 
 |   return TRUE; | 
 | } |