Funzione ClfsAddLogContainerSet (wdm.h)
La routine ClfsAddLogContainerSet aggiunge in modo atomico un set di contenitori a un log CLFS.
CLFSUSER_API NTSTATUS ClfsAddLogContainerSet(
[in] PLOG_FILE_OBJECT plfoLog,
[in] USHORT cContainers,
[in, optional] PULONGLONG pcbContainer,
[in] PUNICODE_STRING rguszContainerPath
);
[in] plfoLog
Puntatore a una struttura LOG_FILE_OBJECT che rappresenta il log a cui verranno aggiunti i contenitori. Il chiamante ottenuto in precedenza questo puntatore chiamando ClfsCreateLogFile.
[in] cContainers
Numero di contenitori nel set. Numero di elementi nella matrice di rguszContainerPath.
[in, optional] pcbContainer
Puntatore a una variabile tipizzata ULONGLONG. Il ruolo di questo parametro dipende dal fatto che il log abbia almeno un contenitore.
- Se il log non dispone attualmente di contenitori, il chiamante fornisce un numero intero positivo che corrisponde alle dimensioni richieste, in byte, di un singolo contenitore. CLFS crea contenitori con dimensioni richieste arrotondate per un multiplo di 512 KB (per un log dedicato) o 1 MB (per un log multiplexed).
- Se il log ha attualmente almeno un contenitore e questo parametro è il puntatore null NULL, CLFS crea nuovi contenitori con le stesse dimensioni dei contenitori esistenti. Tutti i contenitori in un log devono avere le stesse dimensioni.
- Se il log ha attualmente almeno un contenitore e questo parametro è un puntatore valido, il chiamante fornisce un numero intero positivo che corrisponde alle dimensioni richieste, in byte, di un singolo contenitore. Le dimensioni richieste vengono arrotondate per un multiplo di 512 KB (per un log dedicato) o 1 MB (per un log condiviso). Se la dimensione arrotondata è pari almeno alla dimensione del contenitore esistente, CLFS crea nuovi contenitori con le stesse dimensioni dei contenitori esistenti. In caso di esito positivo, questo parametro riceve le dimensioni del contenitore esistenti. Se la dimensione arrotondata è inferiore alla dimensione del contenitore esistente, ClfsAddLogContainerSet.
[in] rguszContainerPath
Puntatore a una matrice di strutture UNICODE_STRING. Ogni stringa fornisce il nome del percorso per uno dei nuovi contenitori. Il numero di elementi nella matrice viene assegnato da cContainers. Un determinato percorso può essere assoluto o relativo al percorso del file di log di base. I percorsi relativi al file di log di base devono iniziare con CLFS_CONTAINER_RELATIVE_PREFIX, ovvero il valore letterale stringa (L"%BLF%\").
ClfsAddLogContainer restituisce STATUS_SUCCESS se ha esito positivo; in caso contrario, restituisce uno dei codici di errore definiti in Ntstatus.h.
Un contenitore è un extent contiguo nell'archiviazione stabile. Ad esempio, un contenitore potrebbe essere un file contiguo su disco. Un log è un set di contenitori insieme a un file di log di base. Per altre informazioni sui contenitori, vedere di archiviazione stabile CLFS.
Un contenitore specificato da un percorso relativo al file di log di base deve trovarsi nella stessa directory del file di log di base o di una sottodirectory del file di log di base. Le directory "." e ".." non sono consentite in un percorso relativo.
Un log può avere alcuni contenitori con percorsi assoluti e altri contenitori con percorsi relativi.
I contenitori vengono creati in modalità non compressa e vengono inizializzati con zeri.
Un log deve avere almeno due contenitori prima di poter eseguire qualsiasi I/O.
Per una spiegazione dei concetti e della terminologia di CLFS, vedere Common Log File System.
Requisito | Valore |
---|---|
client minimo supportato | Disponibile in Windows Server 2003 R2, Windows Vista e versioni successive di Windows. |
piattaforma di destinazione | Desktop |
intestazione | wdm.h (include Wdm.h) |
libreria | Clfs.lib |
dll | Clfs.sys |
IRQL | <= APC_LEVEL |