hotspot/src/os/windows/vm/os_windows.cpp
LONG WINAPI os::win32::serialize_fault_filter(struct _EXCEPTION_POINTERS* e) {
  {- -------------------------------------------
  (1) もし例外が EXCEPTION_ACCESS_VIOLATION であり, かつ
      そのアドレスが serialize page であれば (= os::is_memory_serialize_page() が true を返せば), 
      EXCEPTION_CONTINUE_EXECUTION をリターンする.
      それ以外の場合には, EXCEPTION_CONTINUE_SEARCH をリターンする.
      (この場合は, 何故 os::block_on_serialize_page_trap() で待機していない?? #TODO)
      ---------------------------------------- -}
      DWORD exception_code = e->ExceptionRecord->ExceptionCode;
      if ( exception_code == EXCEPTION_ACCESS_VIOLATION ) {
        JavaThread* thread = (JavaThread*)ThreadLocalStorage::get_thread_slow();
        PEXCEPTION_RECORD exceptionRecord = e->ExceptionRecord;
        address addr = (address) exceptionRecord->ExceptionInformation[1];
        if (os::is_memory_serialize_page(thread, addr))
          return EXCEPTION_CONTINUE_EXECUTION;
      }
      return EXCEPTION_CONTINUE_SEARCH;
    }
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.