code: func lockPath(path string) (uintptr, error) {
  	if len(path) == 0 {
  		return uintptr(syscall.InvalidHandle), syscall.ERROR_FILE_NOT_FOUND
  	}
  	pathp, err := syscall.UTF16PtrFromString(path)
  	if err != nil {
  		return uintptr(syscall.InvalidHandle), err
  	}
  	access := uint32(syscall.GENERIC_READ)
  	sharemode := uint32(syscall.FILE_SHARE_READ)
  	createmode := uint32(syscall.OPEN_EXISTING)
  	flags := uint32(syscall.FILE_FLAG_BACKUP_SEMANTICS | syscall.FILE_FLAG_OPEN_REPARSE_POINT)
  	fd, err := syscall.CreateFile(pathp, access, sharemode, nil, createmode, flags, 0)
  	return uintptr(fd), err
  }
docs: // lockPath locks a directory or symlink, return handle, exec "syscall.CloseHandle(handle)" to unlock the path