[*] Win32: added nvme pcie check under fs devices
This commit is contained in:
parent
d9230ec9c3
commit
2b2f5c3d23
@ -568,6 +568,11 @@ namespace Aurora::IO::FS
|
||||
}
|
||||
}
|
||||
|
||||
if (AuCodepointsToLower(device.devicePath).find("ven_nvme") != AuString::npos)
|
||||
{
|
||||
device.bus = EFSBusType::eBusNVMePCIe;
|
||||
}
|
||||
|
||||
bSuccess = pSetupDiGetDeviceRegistryPropertyA(hIntDevInfo, &deviceInfoData, SPDRP_HARDWAREID, &dwDataType,
|
||||
(PBYTE)szBuffer, sizeof(szBuffer), &dwRequiredSize);
|
||||
|
||||
|
@ -41,7 +41,8 @@ namespace Aurora::IO::FS
|
||||
|
||||
AUKN_SYM AuResult<FSDevice> GetFSDeviceByFilePath(const AuString &path)
|
||||
{
|
||||
AuList<AuPair<AuUInt, const FSDevice *>> devs;
|
||||
AuPair<AuUInt, const FSDevice *> lastDev =
|
||||
AuMakePair<AuUInt, const FSDevice *>(0, nullptr);
|
||||
|
||||
InitPlatformFSCacheAtLoad();
|
||||
|
||||
@ -51,37 +52,31 @@ namespace Aurora::IO::FS
|
||||
return {};
|
||||
}
|
||||
|
||||
{
|
||||
AU_LOCK_GUARD(gFSDirMutex);
|
||||
AU_LOCK_GUARD(gFSDirMutex);
|
||||
|
||||
for (const auto &refFSDevice : gCachedDevices)
|
||||
for (const auto &refFSDevice : gCachedDevices)
|
||||
{
|
||||
for (const auto &refPart : refFSDevice.partitions)
|
||||
{
|
||||
for (const auto &refPart : refFSDevice.partitions) // todo sort
|
||||
for (const auto &refMnt : refPart.filesystemMountPoints)
|
||||
{
|
||||
for (const auto &refMnt : refPart.filesystemMountPoints) // todo sort
|
||||
if (AuStartsWith(path, refMnt))
|
||||
{
|
||||
if (AuStartsWith(path, refMnt))
|
||||
if (AuGet<0>(lastDev) < refMnt.size())
|
||||
{
|
||||
devs.push_back(AuMakePair(refMnt.size(), &refFSDevice));
|
||||
lastDev = AuMakePair(refMnt.size(), &refFSDevice);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (devs.empty())
|
||||
if (AuGet<0>(lastDev) == 0)
|
||||
{
|
||||
return {};
|
||||
}
|
||||
|
||||
std::sort(devs.begin(),
|
||||
devs.end(),
|
||||
[](AuPair<AuUInt, const FSDevice *> a, AuPair<AuUInt, const FSDevice *> b)
|
||||
{
|
||||
return AuGet<0>(a) > AuGet<0>(b);
|
||||
});
|
||||
|
||||
auto copy = AuGet<1>(devs[0]);
|
||||
auto copy = *AuGet<1>(lastDev);
|
||||
return AuMove(copy);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user