diff --git a/src/runtime/os_windows.go b/src/runtime/os_windows.go index 9d494d1baa..734c94b794 100644 --- a/src/runtime/os_windows.go +++ b/src/runtime/os_windows.go @@ -16,6 +16,7 @@ const ( _NSIG = 65 ) +//go:cgo_import_dynamic runtime._AddVectoredContinueHandler AddVectoredContinueHandler%2 "kernel32.dll" //go:cgo_import_dynamic runtime._AddVectoredExceptionHandler AddVectoredExceptionHandler%2 "kernel32.dll" //go:cgo_import_dynamic runtime._CloseHandle CloseHandle%1 "kernel32.dll" //go:cgo_import_dynamic runtime._CreateEventA CreateEventA%4 "kernel32.dll" @@ -72,6 +73,7 @@ var ( // Following syscalls are available on every Windows PC. // All these variables are set by the Windows executable // loader before the Go program starts. + _AddVectoredContinueHandler, _AddVectoredExceptionHandler, _CloseHandle, _CreateEventA, @@ -124,11 +126,6 @@ var ( _WriteFile, _ stdFunction - // Following syscalls are only available on some Windows PCs. - // We will load syscalls, if available, before using them. - _AddVectoredContinueHandler, - _ stdFunction - // Use RtlGenRandom to generate cryptographically random data. // This approach has been recommended by Microsoft (see issue // 15589 for details). @@ -260,7 +257,6 @@ func loadOptionalSyscalls() { if k32 == 0 { throw("kernel32.dll not found") } - _AddVectoredContinueHandler = windowsFindfunc(k32, []byte("AddVectoredContinueHandler\000")) a32 := windowsLoadSystemLib(advapi32dll[:]) if a32 == 0 { diff --git a/src/runtime/signal_windows.go b/src/runtime/signal_windows.go index 828625b9af..4b7960c1f0 100644 --- a/src/runtime/signal_windows.go +++ b/src/runtime/signal_windows.go @@ -49,9 +49,8 @@ func sigresume() func initExceptionHandler() { stdcall2(_AddVectoredExceptionHandler, 1, abi.FuncPCABI0(exceptiontramp)) - if _AddVectoredContinueHandler == nil || GOARCH == "386" { - // use SetUnhandledExceptionFilter for windows-386 or - // if VectoredContinueHandler is unavailable. + if GOARCH == "386" { + // use SetUnhandledExceptionFilter for windows-386. // note: SetUnhandledExceptionFilter handler won't be called, if debugging. stdcall1(_SetUnhandledExceptionFilter, abi.FuncPCABI0(lastcontinuetramp)) } else {