in ProjectedFSLib.Managed.API/VirtualizationInstance.cpp [706:740]
void VirtualizationInstance::StopVirtualizing()
{
HRESULT hr = S_OK;
if (m_apiHelper->UseBetaApi)
{
hr = m_apiHelper->_PrjStopVirtualizationInstance(m_virtualizationContext);
}
else
{
try
{
// The underlying native API throws a structured exception if the instance is in an invalid
// state.
m_apiHelper->_PrjStopVirtualizing(m_virtualizationContext);
}
catch (...)
{
// Catch the structured exception and remember that we had a failure.
hr = E_FAIL;
}
}
if (SUCCEEDED(hr))
{
m_virtualizationContext = nullptr;
delete m_virtualizationContextGc;
m_virtualizationContextGc = nullptr;
}
else
{
// Since this is a resource-releasing routine we don't return an error code. Instead we throw.
throw gcnew InvalidOperationException("Virtualization instance in invalid state.");
}
}