code: func (d *Driver) DiffGetter(id string) (graphdriver.FileGetCloser, error) {
  	title := fmt.Sprintf("lcowdriver: diffgetter: %s", id)
  	logrus.Debugf(title)
  
  	ld, err := getLayerDetails(d.dir(id))
  	if err != nil {
  		logrus.Debugf("%s: failed to get vhdx information of %s: %s", title, d.dir(id), err)
  		return nil, err
  	}
  
  	// Start the SVM with a mapped virtual disk. Note that if the SVM is
  	// already running and we are in global mode, this will be hot-added.
  	mvd := hcsshim.MappedVirtualDisk{
  		HostPath:          ld.filename,
  		ContainerPath:     hostToGuest(ld.filename),
  		CreateInUtilityVM: true,
  		ReadOnly:          true,
  	}
  
  	logrus.Debugf("%s: starting service VM", title)
  	svm, err := d.startServiceVMIfNotRunning(id, []hcsshim.MappedVirtualDisk{mvd}, fmt.Sprintf("diffgetter %s", id))
  	if err != nil {
  		return nil, err
  	}
  
  	logrus.Debugf("%s: waiting for svm to finish booting", title)
  	err = svm.getStartError()
  	if err != nil {
  		d.terminateServiceVM(id, fmt.Sprintf("diff %s", id), false)
  		return nil, fmt.Errorf("%s: svm failed to boot: %s", title, err)
  	}
  
  	return &fileGetCloserFromSVM{
  		id:  id,
  		svm: svm,
  		mvd: &mvd,
  		d:   d}, nil
  }
docs: // DiffGetter returns a FileGetCloser that can read files from the directory that
  // contains files for the layer differences. Used for direct access for tar-split.