zsyscall_windows.mx raw

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