zsyscall_windows.go raw

   1  // Code generated by 'go generate'; DO NOT EDIT.
   2  
   3  package registry
   4  
   5  import (
   6  	"syscall"
   7  	"unsafe"
   8  
   9  	"golang.org/x/sys/windows"
  10  )
  11  
  12  var _ unsafe.Pointer
  13  
  14  // Do the interface allocations only once for common
  15  // Errno values.
  16  const (
  17  	errnoERROR_IO_PENDING = 997
  18  )
  19  
  20  var (
  21  	errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING)
  22  	errERROR_EINVAL     error = syscall.EINVAL
  23  )
  24  
  25  // errnoErr returns common boxed Errno values, to prevent
  26  // allocations at runtime.
  27  func errnoErr(e syscall.Errno) error {
  28  	switch e {
  29  	case 0:
  30  		return errERROR_EINVAL
  31  	case errnoERROR_IO_PENDING:
  32  		return errERROR_IO_PENDING
  33  	}
  34  	// TODO: add more here, after collecting data on the common
  35  	// error values see on Windows. (perhaps when running
  36  	// all.bat?)
  37  	return e
  38  }
  39  
  40  var (
  41  	modadvapi32 = windows.NewLazySystemDLL("advapi32.dll")
  42  	modkernel32 = windows.NewLazySystemDLL("kernel32.dll")
  43  
  44  	procRegConnectRegistryW       = modadvapi32.NewProc("RegConnectRegistryW")
  45  	procRegCreateKeyExW           = modadvapi32.NewProc("RegCreateKeyExW")
  46  	procRegDeleteKeyW             = modadvapi32.NewProc("RegDeleteKeyW")
  47  	procRegDeleteValueW           = modadvapi32.NewProc("RegDeleteValueW")
  48  	procRegEnumValueW             = modadvapi32.NewProc("RegEnumValueW")
  49  	procRegLoadMUIStringW         = modadvapi32.NewProc("RegLoadMUIStringW")
  50  	procRegSetValueExW            = modadvapi32.NewProc("RegSetValueExW")
  51  	procExpandEnvironmentStringsW = modkernel32.NewProc("ExpandEnvironmentStringsW")
  52  )
  53  
  54  func regConnectRegistry(machinename *uint16, key syscall.Handle, result *syscall.Handle) (regerrno error) {
  55  	r0, _, _ := syscall.SyscallN(procRegConnectRegistryW.Addr(), uintptr(unsafe.Pointer(machinename)), uintptr(key), uintptr(unsafe.Pointer(result)))
  56  	if r0 != 0 {
  57  		regerrno = syscall.Errno(r0)
  58  	}
  59  	return
  60  }
  61  
  62  func regCreateKeyEx(key syscall.Handle, subkey *uint16, reserved uint32, class *uint16, options uint32, desired uint32, sa *syscall.SecurityAttributes, result *syscall.Handle, disposition *uint32) (regerrno error) {
  63  	r0, _, _ := syscall.SyscallN(procRegCreateKeyExW.Addr(), uintptr(key), uintptr(unsafe.Pointer(subkey)), uintptr(reserved), uintptr(unsafe.Pointer(class)), uintptr(options), uintptr(desired), uintptr(unsafe.Pointer(sa)), uintptr(unsafe.Pointer(result)), uintptr(unsafe.Pointer(disposition)))
  64  	if r0 != 0 {
  65  		regerrno = syscall.Errno(r0)
  66  	}
  67  	return
  68  }
  69  
  70  func regDeleteKey(key syscall.Handle, subkey *uint16) (regerrno error) {
  71  	r0, _, _ := syscall.SyscallN(procRegDeleteKeyW.Addr(), uintptr(key), uintptr(unsafe.Pointer(subkey)))
  72  	if r0 != 0 {
  73  		regerrno = syscall.Errno(r0)
  74  	}
  75  	return
  76  }
  77  
  78  func regDeleteValue(key syscall.Handle, name *uint16) (regerrno error) {
  79  	r0, _, _ := syscall.SyscallN(procRegDeleteValueW.Addr(), uintptr(key), uintptr(unsafe.Pointer(name)))
  80  	if r0 != 0 {
  81  		regerrno = syscall.Errno(r0)
  82  	}
  83  	return
  84  }
  85  
  86  func regEnumValue(key syscall.Handle, index uint32, name *uint16, nameLen *uint32, reserved *uint32, valtype *uint32, buf *byte, buflen *uint32) (regerrno error) {
  87  	r0, _, _ := syscall.SyscallN(procRegEnumValueW.Addr(), uintptr(key), uintptr(index), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameLen)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(valtype)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(buflen)))
  88  	if r0 != 0 {
  89  		regerrno = syscall.Errno(r0)
  90  	}
  91  	return
  92  }
  93  
  94  func regLoadMUIString(key syscall.Handle, name *uint16, buf *uint16, buflen uint32, buflenCopied *uint32, flags uint32, dir *uint16) (regerrno error) {
  95  	r0, _, _ := syscall.SyscallN(procRegLoadMUIStringW.Addr(), uintptr(key), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(buf)), uintptr(buflen), uintptr(unsafe.Pointer(buflenCopied)), uintptr(flags), uintptr(unsafe.Pointer(dir)))
  96  	if r0 != 0 {
  97  		regerrno = syscall.Errno(r0)
  98  	}
  99  	return
 100  }
 101  
 102  func regSetValueEx(key syscall.Handle, valueName *uint16, reserved uint32, vtype uint32, buf *byte, bufsize uint32) (regerrno error) {
 103  	r0, _, _ := syscall.SyscallN(procRegSetValueExW.Addr(), uintptr(key), uintptr(unsafe.Pointer(valueName)), uintptr(reserved), uintptr(vtype), uintptr(unsafe.Pointer(buf)), uintptr(bufsize))
 104  	if r0 != 0 {
 105  		regerrno = syscall.Errno(r0)
 106  	}
 107  	return
 108  }
 109  
 110  func expandEnvironmentStrings(src *uint16, dst *uint16, size uint32) (n uint32, err error) {
 111  	r0, _, e1 := syscall.SyscallN(procExpandEnvironmentStringsW.Addr(), uintptr(unsafe.Pointer(src)), uintptr(unsafe.Pointer(dst)), uintptr(size))
 112  	n = uint32(r0)
 113  	if n == 0 {
 114  		err = errnoErr(e1)
 115  	}
 116  	return
 117  }
 118