rum-goggles/v1/vendor/github.com/jchv/go-winloader/loader_windows.go

34 lines
858 B
Go
Raw Normal View History

2024-02-23 16:39:16 +00:00
package winloader
import (
"github.com/jchv/go-winloader/internal/memloader"
"github.com/jchv/go-winloader/internal/winloader"
)
var native = winloader.Loader{}
var cache = memloader.NewCache(native)
var ldr = memloader.New(memloader.Options{
Next: cache,
Machine: winloader.NativeMachine{},
})
// LoadFromFile loads a Windows module from file using the native Windows
// loader.
func LoadFromFile(name string) (Module, error) {
return native.Load(name)
}
// LoadFromMemory loads a Windows module from memory.
func LoadFromMemory(data []byte) (Module, error) {
return ldr.LoadMem(data)
}
// AddToCache adds a module to the loader cache, allowing in-memory libraries
// to link to it. Note that modules in the cache must exist in the same
// address space.
func AddToCache(name string, module Module) error {
return cache.Add(name, module)
}