github.com/corona10/go@v0.0.0-20180224231303-7a218942be57/src/internal/syscall/windows/sysdll/sysdll.go (about) 1 // Copyright 2016 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 // Package sysdll is an internal leaf package that records and reports 6 // which Windows DLL names are used by Go itself. These DLLs are then 7 // only loaded from the System32 directory. See Issue 14959. 8 package sysdll 9 10 // IsSystemDLL reports whether the named dll key (a base name, like 11 // "foo.dll") is a system DLL which should only be loaded from the 12 // Windows SYSTEM32 directory. 13 // 14 // Filenames are case sensitive, but that doesn't matter because 15 // the case registered with Add is also the same case used with 16 // LoadDLL later. 17 // 18 // It has no associated mutex and should only be mutated serially 19 // (currently: during init), and not concurrent with DLL loading. 20 var IsSystemDLL = map[string]bool{} 21 22 // Add notes that dll is a system32 DLL which should only be loaded 23 // from the Windows SYSTEM32 directory. It returns its argument back, 24 // for ease of use in generated code. 25 func Add(dll string) string { 26 IsSystemDLL[dll] = true 27 return dll 28 }