Funzione WriteLogRestartArea (clfsw32.h)
Aggiunge una nuova area di riavvio client a un log e, facoltativamente, sposta il numero di sequenza di log di base (LSN) del log.
Dopo la scrittura in un disco, l'ultimo LSN del log viene modificato nell'LSN del record di riavvio aggiunto. In genere, WriteLogRestartArea viene usato dalle applicazioni che salvano regolarmente uno stato valido noto e l'area di riavvio contiene i nomi LSN per le catene di record di log esistenti.
Sintassi
CLFSUSER_API BOOL WriteLogRestartArea(
[in, out] PVOID pvMarshal,
[in] PVOID pvRestartBuffer,
[in] ULONG cbRestartBuffer,
[in, optional] PCLFS_LSN plsnBase,
[in] ULONG fFlags,
[out, optional] PULONG pcbWritten,
[out, optional] PCLFS_LSN plsnNext,
[in, out, optional] LPOVERLAPPED pOverlapped
);
Parametri
[in, out] pvMarshal
Puntatore al contesto di marshalling allocato tramite la funzione CreateLogMarshallingArea .
[in] pvRestartBuffer
Puntatore a un buffer contenente i dati di riavvio.
[in] cbRestartBuffer
Dimensioni di pvRestartBuffer, in byte.
[in, optional] plsnBase
Puntatore a una struttura CLFS_LSN che specifica il nuovo LSN di base del log dopo aver scritto correttamente l'area di riavvio.
Questo valore non può essere esterno all'intervallo del log attivo. Deve essere almeno il valore dell'LSN di base corrente e non maggiore del LSN restituito nell'ultimo parametroLSN dalla chiamata più recente a ReserveAndAppendLog. Se si omette questo parametro facoltativo, l'LSN di base non cambia.
[in] fFlags
Flag che specificano il comportamento di questa funzione.
È possibile combinare uno o più dei valori seguenti.
Valore | Significato |
---|---|
|
Assegna nessun flag. |
|
Aggiunge il record corrente usando lo spazio riservato nell'area di marshalling. |
[out, optional] pcbWritten
Puntatore a una variabile che riceve il numero di byte scritti al termine di un'operazione.
[out, optional] plsnNext
Puntatore a una struttura CLFS_LSN che specifica l'LSN dell'area di riavvio scritta.
[in, out, optional] pOverlapped
Puntatore a una struttura OVERLAPPED .
Questo parametro può essere NULL se non viene utilizzata un'operazione asincrona.
Valore restituito
Se la funzione ha esito positivo, il valore restituito è diverso da zero.
Se la funzione ha esito negativo, il valore restituito è zero. Per informazioni dettagliate sull'errore, chiamare GetLastError.
L'elenco seguente identifica i possibili codici di errore:
Commenti
WriteLogRestartArea causa sia lo scaricamento di tutti i record di log memorizzati nel buffer corrente che uno scaricamento dei metadati del log.
Se un client chiama WriteLogRestartArea in un log creato per supportare operazioni asincrone, ad esempio se il parametro fFlagsAndAttributes di CreateLogFile è impostato su FILE_FLAG_OVERLAPPED quando viene creato il log, il client deve fornire un puntatore a una struttura OVERLAPPED valida nel parametro pOverlapped di WriteLogRestartArea.
Quindi, se WriteLogRestartArea ha esito negativo con un errore di ERROR_IO_PENDING, nella variabile a cui punta il parametro ppvReadContext viene inserito un puntatore a un contesto di lettura valido.
Per completare la chiamata, il client deve sincronizzarne l'esecuzione con il completamento posticipato dell'operazione di I/O sovrapposta usando GetOverlappedResult o una delle funzioni di attesa di sincronizzazione. Per altre informazioni, vedere Sincronizzazione e input e output sovrapposti.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista [solo app desktop] |
Server minimo supportato | Windows Server 2003 R2 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | clfsw32.h |
Libreria | Clfsw32.lib |
DLL | Clfsw32.dll |