func destroyEnvironmentBlock(lpEnvironment syscall.Handle) error {
	ret, _, errno := procDestroyEnvironmentBlock.Call(uintptr(lpEnvironment))
	return testReturnCodeTrue(ret, errno)
}
BOOL DestroyEnvironmentBlock(
LPVOID lpEnvironment
);
https://docs.microsoft.com/en-us/windows/desktop/api/userenv/nf-userenv-destroyenvironmentblock
package win32
import (
	"syscall"
	"unicode/utf16"
	"unsafe"
)
var (
	procCreateEnvironmentBlock  = userenvDLL.NewProc("CreateEnvironmentBlock")
	procDestroyEnvironmentBlock = userenvDLL.NewProc("DestroyEnvironmentBlock")
)
func createEnvironmentBlock(hToken syscall.Token, inherit bool) (syscall.Handle, error) {
	var lpEnvironment syscall.Handle
	ret, _, errno := procCreateEnvironmentBlock.Call(
		uintptr(unsafe.Pointer(&lpEnvironment)),
		uintptr(hToken),
		uintptr(toBOOL(inherit)),
	)
	if err := testReturnCodeTrue(ret, errno); err != nil {
		return 0, err
	}
	return lpEnvironment, nil
}