in ProjectedFSLib.Managed.API/VirtualizationInstance.cpp [1112:1164]
HResult VirtualizationInstance::MarkDirectoryAsPlaceholder(
String^ targetDirectoryPath,
array<Byte>^ contentId,
array<Byte>^ providerId)
{
GUID virtualizationInstanceId;
HRESULT hr = S_OK;
if (m_apiHelper->UseBetaApi)
{
hr = m_apiHelper->_PrjGetVirtualizationInstanceIdFromHandle(reinterpret_cast<PRJ_VIRTUALIZATIONINSTANCE_HANDLE>(m_virtualizationContext),
&virtualizationInstanceId);
if (hr == S_OK)
{
PRJ_PLACEHOLDER_VERSION_INFO versionInfo;
memset(&versionInfo, 0, sizeof(PRJ_PLACEHOLDER_VERSION_INFO));
CopyPlaceholderId(versionInfo.ProviderID, providerId);
CopyPlaceholderId(versionInfo.ContentID, contentId);
pin_ptr<const WCHAR> rootPath = PtrToStringChars(m_virtualizationRootPath);
pin_ptr<const WCHAR> targetPath = PtrToStringChars(targetDirectoryPath);
hr = m_apiHelper->_PrjConvertDirectoryToPlaceholder(rootPath,
targetPath,
&versionInfo,
0,
&virtualizationInstanceId);
}
}
else
{
PRJ_VIRTUALIZATION_INSTANCE_INFO instanceInfo;
hr = m_apiHelper->_PrjGetVirtualizationInstanceInfo(m_virtualizationContext,
&instanceInfo);
if (SUCCEEDED(hr))
{
PRJ_PLACEHOLDER_VERSION_INFO versionInfo;
memset(&versionInfo, 0, sizeof(PRJ_PLACEHOLDER_VERSION_INFO));
CopyPlaceholderId(versionInfo.ProviderID, providerId);
CopyPlaceholderId(versionInfo.ContentID, contentId);
pin_ptr<const WCHAR> rootPath = PtrToStringChars(m_virtualizationRootPath);
pin_ptr<const WCHAR> targetPath = PtrToStringChars(targetDirectoryPath);
hr = m_apiHelper->_PrjMarkDirectoryAsPlaceholder(rootPath,
targetPath,
&versionInfo,
&instanceInfo.InstanceID);
}
}
return static_cast<HResult>(hr);
}