code: def _ScanVolumeSystemRootNode(
        self, scan_context, scan_node, auto_recurse=True):
      
      if scan_node.type_indicator == definitions.TYPE_INDICATOR_VSHADOW:
        # For VSS add a scan node for the current volume.
        path_spec = self.ScanForFileSystem(scan_node.path_spec.parent)
        if path_spec:
          scan_context.AddScanNode(path_spec, scan_node.parent_node)
  
      # Determine the path specifications of the sub file entries.
      file_entry = resolver.Resolver.OpenFileEntry(
          scan_node.path_spec, resolver_context=self._resolver_context)
  
      for sub_file_entry in file_entry.sub_file_entries:
        sub_scan_node = scan_context.AddScanNode(
            sub_file_entry.path_spec, scan_node)
  
        if scan_node.type_indicator == definitions.TYPE_INDICATOR_VSHADOW:
          # Since scanning for file systems in VSS snapshot volumes can
          # be expensive we only do this when explicitly asked for.
          continue
  
        if auto_recurse or not scan_context.updated:
          self._ScanNode(scan_context, sub_scan_node, auto_recurse=auto_recurse)
docs: Scans a volume system root node for supported formats.
  
      Args:
        scan_context (SourceScannerContext): source scanner context.
        scan_node (SourceScanNode): source scan node.
        auto_recurse (Optional[bool]): True if the scan should automatically
            recurse as far as possible.
  
      Raises:
        ValueError: if the scan context or scan node is invalid.