CimFS
Un CIM è un formato di immagine supportato da file simile al concetto di WIM.
Il formato CIM è costituito da una piccola raccolta di file flat che includono uno o più file di area dati e metadati, uno o più file ID oggetto e uno o più file di descrizione del file system. A causa della loro "flatità" CIMS sono più veloci per costruire, estrarre ed eliminare rispetto alle directory non elaborate equivalenti che contengono.
Le macchine virtuali sono composte in quanto un'immagine specifica può contenere più volumi di file system che possono essere montati singolarmente mentre condividono gli stessi file di backup dell'area dati.
Una volta costruito, un CIM può essere montato con il supporto del driver CimFS. Il montaggio costruisce un disco di sola lettura e un dispositivo del volume del file system per l'immagine. Il contenuto di un CIM montato può essere accessibile in sola lettura usando l'interfaccia di file system Win32 o NT standard. Il file system CimFS supporta molti costrutti di NTFS, ad esempio descrittori di sicurezza, flussi di dati alternativi, collegamenti rigidi e punti di ripetizione dell'analisi.
Le macchine virtuali supportano la deduplicazione a livello di file. Se più copie dello stesso file vengono aggiunte a un CIM usando percorsi diversi, sarà presente solo una singola copia dei dati file archiviati nel CIM.
Le macchine virtuali sono state originariamente progettate e ottimizzate per essere usate come layout di immagini di Windows Container.
Per sviluppare con CimFS, è necessaria questa intestazione:
Sarà necessario collegare questa libreria:
- cimfs.lib
Questo esempio illustra come usare le API CimFS (Composite Image File System) per creare, configurare e modificare le immagini CimFS.
CIM_MOUNT_IMAGE_FLAGS L'enumerazione CIM_MOUNT_IMAGE_FLAGS contiene flag che possono essere usati per modificare il comportamento di CimMountImage. |
CimCloseImage La funzione CimCloseImage libera le risorse associate all'handle di immagine. |
CimCloseStream La funzione CimCloseStream libera le risorse associate all'handle di flusso. |
CimCommitImage La funzione CimCommitImage esegue il commit dell'immagine rappresentata dall'handle di immagine. |
CimCreateAlternateStream La funzione CimCreateAlternateStream aggiunge un flusso alternativo con le dimensioni specificate in un percorso relativo all'immagine rappresentata dall'handle immagine. |
CimCreateFile La funzione CimCreateFile aggiunge un nuovo file o una nuova directory con i metadati specificati in un percorso relativo all'immagine rappresentata dall'handle di immagine. |
CimCreateHardLink La funzione CimCreateHardLink aggiunge un collegamento rigido a un percorso esistente relativo all'immagine rappresentata dall'handle di immagine. |
CimCreateImage La funzione CimCreateImage crea un handle che rappresenta una nuova immagine nella posizione specificata, facoltativamente in base a un'immagine esistente in tale posizione. |
CimDeletePath La funzione CimDeletePath rimuove il file, il flusso, la directory o il hardlink in un percorso relativo all'immagine rappresentata dall'handle di immagine. |
CimDismountImage La funzione CimDismountImage smonta un'immagine montata con volumeId come GUID del volume. |
CimMountImage La funzione CimMountImage monta l'immagine denominata dalla posizione specificata da cimPath come volume con il GUID del volume specificato da volumeId. |
CimWriteStream La funzione CimWriteStream scrive i dati dal buffer specificato al flusso rappresentato dall'handle di flusso. |
CIMFS_FILE_METADATA La struttura CIMFS_FILE_METADATA specifica i metadati del file da aggiungere da CimCreateFile. |