def _FindInKey(self, registry_key, find_specs, search_depth):
sub_find_specs = []<EOL>for find_spec in find_specs:<EOL><INDENT>match, key_path_match = find_spec.Matches(registry_key, search_depth)<EOL>if match:<EOL><INDENT>yield registry_key.path<EOL><DEDENT>if key_path_match != False and not find_spec.AtMaximumDepth(search_depth):<EOL><INDENT>sub_find_specs.append(find_spec)<EOL><DEDENT><DEDENT>if sub_find_specs:<EOL><INDENT>search_depth += <NUM_LIT:1><EOL>for sub_registry_key in registry_key.GetSubkeys():<EOL><INDENT>for matching_path in self._FindInKey(<EOL>sub_registry_key, sub_find_specs, search_depth):<EOL><INDENT>yield matching_path<EOL><DEDENT><DEDENT><DEDENT>
Searches for matching keys within the Windows Registry key.

        Args:
          registry_key (WinRegistryKey): Windows Registry key.
          find_specs (list[FindSpec]): find specifications.
          search_depth (int): number of key path segments to compare.

        Yields:
          str: key path of a matching Windows Registry key.