inline std::shared_ptr CreatePlaceholderInformation()

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;
}