26 lines
686 B
Go
26 lines
686 B
Go
package loader
|
|
|
|
// Module represents a loaded Windows module.
|
|
type Module interface {
|
|
// Proc returns a procedure by symbol name. Returns nil if the symbol is
|
|
// not found.
|
|
Proc(name string) Proc
|
|
|
|
// Ordinal returns a procedure by ordinal.
|
|
Ordinal(ordinal uint64) Proc
|
|
|
|
// Free closes the module and frees the memory. After this, GetProcAddress
|
|
// will stop working and procedures will no longer function.
|
|
Free() error
|
|
}
|
|
|
|
// Loader represents a named module loader implementation.
|
|
type Loader interface {
|
|
Load(libname string) (Module, error)
|
|
}
|
|
|
|
// MemLoader represents a memory module loader implementation.
|
|
type MemLoader interface {
|
|
LoadMem(module []byte) (Module, error)
|
|
}
|