code: def _ParseKey(self, knowledge_base, registry_key, value_name):
      
      try:
        registry_value = registry_key.GetValueByName(value_name)
      except IOError as exception:
        raise errors.PreProcessFail((
            'Unable to retrieve Windows Registry key: {0:s} value: {1:s} '
            'with error: {2!s}').format(
                registry_key.path, value_name, exception))
  
      if registry_value:
        value_object = registry_value.GetDataAsObject()
        if value_object:
          self._ParseValueData(knowledge_base, value_object)
docs: Parses a Windows Registry key for a preprocessing attribute.
  
      Args:
        knowledge_base (KnowledgeBase): to fill with preprocessing information.
        registry_key (dfwinreg.WinRegistryKey): Windows Registry key.
        value_name (str): name of the Windows Registry value.
  
      Raises:
        PreProcessFail: if the preprocessing fails.