in ProjectedFSLib.Managed.API/VirtualizationInstance.cpp [1739:1776]
inline std::shared_ptr<PRJ_PLACEHOLDER_INFORMATION> CreatePlaceholderInformation(
DateTime creationTime,
DateTime lastAccessTime,
DateTime lastWriteTime,
DateTime changeTime,
FileAttributes fileAttributes,
long long endOfFile,
bool directory,
array<Byte>^ contentId,
array<Byte>^ providerId)
{
std::shared_ptr<PRJ_PLACEHOLDER_INFORMATION> fileInformation(static_cast<PRJ_PLACEHOLDER_INFORMATION*>(malloc(sizeof(PRJ_PLACEHOLDER_INFORMATION))), free);
fileInformation->Size = sizeof(PRJ_PLACEHOLDER_INFORMATION);
memset(&fileInformation->FileBasicInfo, 0, sizeof(PRJ_FILE_BASIC_INFO));
fileInformation->FileBasicInfo.FileSize = endOfFile;
fileInformation->FileBasicInfo.IsDirectory = directory;
fileInformation->FileBasicInfo.CreationTime.QuadPart = creationTime.ToFileTime();
fileInformation->FileBasicInfo.LastAccessTime.QuadPart = lastAccessTime.ToFileTime();
fileInformation->FileBasicInfo.LastWriteTime.QuadPart = lastWriteTime.ToFileTime();
fileInformation->FileBasicInfo.ChangeTime.QuadPart = changeTime.ToFileTime();
fileInformation->FileBasicInfo.FileAttributes = static_cast<UINT32>(fileAttributes);
fileInformation->EaInformation.EaBufferSize = 0;
fileInformation->EaInformation.OffsetToFirstEa = static_cast<unsigned long>(-1);
fileInformation->SecurityInformation.SecurityBufferSize = 0;
fileInformation->SecurityInformation.OffsetToSecurityDescriptor = static_cast<unsigned long>(-1);
fileInformation->StreamsInformation.StreamsInfoBufferSize = 0;
fileInformation->StreamsInformation.OffsetToFirstStreamInfo = static_cast<unsigned long>(-1);
memset(&fileInformation->VersionInfo, 0, sizeof(PRJ_PLACEHOLDER_VERSION_INFO));
CopyPlaceholderId(fileInformation->VersionInfo.ProviderID, providerId);
CopyPlaceholderId(fileInformation->VersionInfo.ContentID, contentId);
return fileInformation;
}