def _GetUsers(self, key_path_suffix):
user_key_name, _, key_path_suffix = key_path_suffix.partition(<EOL>definitions.KEY_PATH_SEPARATOR)<EOL>if user_key_name == '<STR_LIT>':<EOL><INDENT>search_key_name = '<STR_LIT>'<EOL><DEDENT>else:<EOL><INDENT>search_key_name = user_key_name<EOL><DEDENT>user_profile_list_key = self.GetKeyByPath(self._USER_PROFILE_LIST_KEY_PATH)<EOL>if not user_profile_list_key:<EOL><INDENT>return None<EOL><DEDENT>for user_profile_key in user_profile_list_key.GetSubkeys():<EOL><INDENT>if search_key_name == user_profile_key.name:<EOL><INDENT>profile_path_value = user_profile_key.GetValueByName('<STR_LIT>')<EOL>if not profile_path_value:<EOL><INDENT>break<EOL><DEDENT>profile_path = profile_path_value.GetDataAsObject()<EOL>if not profile_path:<EOL><INDENT>break<EOL><DEDENT>key_name_upper = user_profile_key.name.upper()<EOL>if key_name_upper.endswith('<STR_LIT>'):<EOL><INDENT>profile_path = '<STR_LIT:\\>'.join([<EOL>profile_path, '<STR_LIT>', '<STR_LIT>', '<STR_LIT>', '<STR_LIT>',<EOL>'<STR_LIT>'])<EOL><DEDENT>else:<EOL><INDENT>profile_path = '<STR_LIT:\\>'.join([profile_path, '<STR_LIT>'])<EOL><DEDENT>profile_path_upper = profile_path.upper()<EOL>registry_file = self._GetCachedUserFileByPath(profile_path_upper)<EOL>if not registry_file:<EOL><INDENT>break<EOL><DEDENT>key_path_prefix = definitions.KEY_PATH_SEPARATOR.join([<EOL>'<STR_LIT>', user_key_name])<EOL>key_path = '<STR_LIT>'.join([key_path_prefix, key_path_suffix])<EOL>registry_file.SetKeyPathPrefix(key_path_prefix)<EOL>return registry_file.GetKeyByPath(key_path)<EOL><DEDENT><DEDENT>return None<EOL>
Virtual key callback to determine the users sub keys.

        Args:
          key_path_suffix (str): users Windows Registry key path suffix with
              leading path separator.

        Returns:
          WinRegistryKey: the users Windows Registry key or None if not available.