How to load the asset from a DLC pak file after upgrade to 4.15 from 4.11.2?

When my project use 4.11.2, I can load the asset from a pak file.
But I can’t do that after upgrade to 4.15. I know there are a lot of change from 4.11.

Mount function:

IPlatformFile& PlatformFile = FPlatformFileManager::Get().GetPlatformFile();
FPlatformFileManager::Get().SetPlatformFile(PakPlatformFile);
if (!PakPlatformFile.Initialize(&PlatformFile, TEXT("")))
{
    return false;
}
PakPlatformFile.InitializeNewAsyncIO(); //< For 4.15, I must to call this function. For 4.11.2, it doesn't exist.
if (!PakPlatformFile.Mount(TEXT("D:\UE4\MyProject\Content\Packages\T001.pak"), 0, TEXT("D:\UE4\MyProject\Content\DLC")))
{
    return false;
}
return true;

Load function:

UStaticMesh* MyMesh = LoadObject<UObject>(NULL, TEXT("/Game/DLC/TestActor.TestActor")));

Please, help me how to load the asset from pak file in 4.15. Thanks a lot.

Try registering a mount point?

static int siMountIndex = 0;
rMPI.m_Directory = StandardFilename;
rMPI.m_MountPoint = FString::Printf(_T("/DLC%d/"), siMountIndex++);
FPackageName::RegisterMountPoint(rMPI.m_MountPoint, StandardFilename);

Thanks. My solution: 1. re-pack the asset by UE4.15; 2. revise the mount point. I will try to use your way.

Well - I’m the blind leading the blind here. My code is very similar to yours and failing on MAC / iOS. In my case I can load loose files from my pak file but level streaming fails after I’ve mounted a pak file (levels are in the normal Content directory, non DLC). I tagged you on my thread:

Your above pointer to use InitializeNewAsyncIO got me past a crash in unmount, but how did you find out that was needed - just by looking for where the precache system was being inited?