Megosztás a következőn keresztül:


Gyorsítótár állapota a virtualizálási gyökérben

A szolgáltató a virtualizálási gyökér alatt található helyi fájlrendszert használja az általa kezelt elemek gyorsítótáraként. Egy elem (fájl vagy könyvtár) a helyi fájlrendszer hat állapotának egyikében lehet:

  • Virtuális

    Az elem helyileg nem létezik a lemezen. A szülőkönyvtár enumerálása során előrejelzett, azaz szintetizált. A rendszer egyesíti a virtuális elemeket a lemezen található elemekkel a szülőkönyvtár teljes tartalmának megjelenítéséhez.

  • Helyőrző

    Fájlok esetén: A fájl tartalma (elsődleges adatfolyam) nem található a lemezen. A fájl metaadatai (név, méret, időbélyegek, attribútumok stb.) gyorsítótárazva lesznek a lemezen.

    Könyvtárak esetén: A könyvtár néhány vagy az összes közvetlen leszármazottja (a könyvtárban lévő fájlok és könyvtárak) nem találhatók a lemezen, azaz még mindig virtuálisak. A könyvtár metaadatai (név, időbélyegek, attribútumok stb.) gyorsítótárazva lesznek a lemezen.

  • Hidratált helyőrző

    Fájlok esetén: A fájl tartalma és metaadatai gyorsítótárazva lettek a lemezen. Más néven "részleges fájl".

    Könyvtárak esetén: A lemezen helyőrzőként létrehozott könyvtár soha nem lesz hidratált helyőrző könyvtár. Ez lehetővé teszi a szolgáltató számára, hogy elemeket vegyen fel vagy távolítson el a címtárból a háttértárban, és hogy ezek a módosítások megjelenjenek a helyi gyorsítótárban.

  • Piszkos helyőrző (hidratált vagy nem)

    Az elem metaadatai helyileg módosultak, és már nem a szolgáltató tárolójában lévő állapot gyorsítótára. Vegye figyelembe, hogy egy helyőrző könyvtárban lévő fájl vagy könyvtár létrehozása vagy törlése miatt a helyőrző könyvtár koszossá válik.

  • Teljes fájl/könyvtár

    Fájlok esetén: A fájl tartalma (elsődleges adatfolyam) módosult. A fájl már nem a szolgáltató tárolójában lévő állapot gyorsítótára. A helyi fájlrendszerben létrehozott fájlok (azaz amelyek egyáltalán nem léteznek a szolgáltató tárolójában) szintén teljes fájlnak minősülnek.

    Könyvtárak esetében: A helyi fájlrendszerben létrehozott könyvtárak (azaz amelyek egyáltalán nem léteznek a szolgáltató tárolójában) teljes könyvtáraknak minősülnek. A lemezen helyőrzőként létrehozott címtárak soha nem lesznek teljes könyvtárak.

  • Sírkő

    Egy speciális rejtett helyőrző, amely egy, a helyi fájlrendszerből törölt elemet jelöl. A címtárak számbavételekor a ProjFS egyesíti a helyi elemek készletét (helyőrzők, teljes fájlok stb.) a virtuális kivetített elemek készletével. Ha egy elem a helyi és a tervezett készletben is megjelenik, a helyi elem elsőbbséget élvez. Ha egy fájl nem létezik a helyi fájlrendszerben, akkor nincs helyi állapot, ezért megjelenik az enumerálásban. Ha azonban az elemet törölték volna, az enumerálásban való megjelenése váratlan lenne. Ha egy törölt elemet egy sírkőre cserél, az a következő hatásokat eredményezi:

    • Enumerálások, hogy ne fedje fel az elemet.
    • Megnyílik egy fájl, amely azt várja, hogy az elem létezni fog, például "a fájl nem található".
    • A fájl létrehozása csak akkor várható sikerrel, ha az elem nem létezik sikeres; A ProjFS eltávolítja a sírkövet a művelet részeként.

A fenti állapotok szemléltetéséhez vegye figyelembe a következő sorrendet, mivel egy ProjFS-szolgáltató egyetlen fájllal rendelkezik, amely a C virtualizálási gyökérkönyvtárban található "foo.txt" fájllal rendelkezik:\root.

  1. Egy alkalmazás számba adja a C:\rootot. Megjelenik a "foo.txt" virtuális fájl. Mivel a fájl még nem érhető el, a fájl nem létezik a lemezen.
  2. Az alkalmazás megnyitja a C:\root\foo.txtleíróját. A ProjFS arra utasítja a szolgáltatót, hogy hozzon létre egy helyőrzőt.
  3. Az alkalmazás felolvassa a fájl tartalmát. A szolgáltató biztosítja a fájltartalmat a ProjFS-nek, és gyorsítótárazza C:\root\foo.txt. A fájl mostantól hidratált helyőrző.
  4. Az alkalmazás frissíti a legutóbb módosított időbélyeget. A fájl most már egy piszkos hidratált helyőrző.
  5. Az alkalmazás megnyit egy leírót a fájlhoz való íráshoz. C:\root\foo.txt most már teljes fájl.
  6. Az alkalmazás törli C:\root\foo.txt. A ProjFS egy sírkőre cseréli a fájlt. Most, amikor az alkalmazás számba C:\root it does not see foo.txt. Ha megpróbálja megnyitni a fájlt, a megnyitás meghiúsul a ERROR_FILE_NOT_FOUND.