Funzione ReadLogRestartArea (clfsw32.h)

Restituisce l'ultima area di riavvio scritta correttamente nel log associato all'area di marshalling di WriteLogRestartArea. La funzione restituisce anche un contesto di lettura che consente al chiamante di eseguire il cursore indietro o avanti tramite un log dal record di riavvio.

Questo contesto di lettura è utile durante l'analisi delle aree di riavvio precedenti a quella corrente richiamando ReadPreviousLogRestartArea.

Sintassi

CLFSUSER_API BOOL ReadLogRestartArea(
  [in]                PVOID        pvMarshal,
  [out]               PVOID        *ppvRestartBuffer,
  [out]               PULONG       pcbRestartBuffer,
  [out]               PCLFS_LSN    plsn,
  [out]               PVOID        *ppvContext,
  [in, out, optional] LPOVERLAPPED pOverlapped
);

Parametri

[in] pvMarshal

Puntatore a un contesto di marshalling allocato usando la funzione CreateLogMarshallingArea .

[out] ppvRestartBuffer

Puntatore a una variabile che riceve un puntatore ai dati di riavvio nel blocco di I/O del log.

[out] pcbRestartBuffer

Puntatore a una variabile che riceve la quantità di dati di riavvio.

[out] plsn

Puntatore a una struttura CLFS_LSN che riceve il numero di sequenza di log (LSN) dell'area di riavvio.

[out] ppvContext

Puntatore a una variabile che riceve un puntatore a un contesto di lettura allocato dal sistema quando una lettura ha esito positivo.

Se la funzione defererà il completamento di un'operazione, restituisce un puntatore di contesto di lettura valido e uno stato di errore di ERROR_IO_PENDING. In tutti gli altri errori, il puntatore di contesto di lettura è NULL. Per altre informazioni sulla gestione del completamento posticipato della funzione, vedere la sezione Osservazioni di questo argomento.

Dopo aver ottenuto tutti i record di log richiesti, il client deve passare il contesto di lettura a TerminateReadLog per liberare la memoria associata. In caso contrario, la perdita di memoria comporta una perdita di memoria.

Nota I contesti di lettura CLFS (Common Log File System) non sono thread-safe. Non devono essere usati da più thread alla volta o passati a più di una lettura asincrona alla volta.
 

[in, out, optional] pOverlapped

Puntatore a una struttura OVERLAPPED necessaria per l'operazione asincrona.

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

Il messaggio di errore ERROR_LOG_BLOCK_INCOMPLETE viene restituito se le dimensioni del blocco di log specificate da CreateLogMarshallingArea non sono sufficienti per contenere un blocco di log completo.

In genere, ReadLogRestartArea viene usato solo durante il riavvio del client, dopo un arresto anomalo o dopo un arresto anomalo.

Se nel log non è presente alcuna area di riavvio, ReadLogRestartArea ha esito negativo con il codice ERROR_LOG_NO_RESTART.

Se ReadLogRestartArea ha esito negativo con un codice di errore di ERROR_IO_PENDING, un puntatore a un contesto di lettura valido viene inserito nella variabile a cui fa riferimento il parametro ppvReadContext .

Per completare la copia del record di log, il client deve prima sincronizzarne l'esecuzione con il completamento posticipato dell'operazione di I/O sovrapposta chiamando GetOverlappedResult o una delle funzioni di attesa di sincronizzazione. Per altre informazioni, vedere Sincronizzazione e output sovrapposti.

Dopo aver completato ReadLogRestartArea in modo asincrono, l'area di riavvio richiesta viene letto dal disco, ma non viene inserito un puntatore valido in *ppvRestartBuffer.

Per ottenere un puntatore valido, il client deve chiamare ReadPreviousLogRestartArea, che passa il puntatore in lettura restituito da ReadLogRestartArea.

Nota I contesti di lettura CLFS (Common Log File System) non sono thread-safe. Non devono essere usati da più thread alla volta.

I contesti di lettura CLFS non devono essere passati a più di una lettura asincrona alla volta oppure la funzione non riesce con ERROR_BUSY.

 

Requisiti

   
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

Vedi anche

CLFS_LSN

Funzioni comuni del file system di log

CreateLogFile

SOVRAPPOSTA

ReadPreviousLogRestartArea

Sincronizzazione e sovrapposizione di input e output

WriteLogRestartArea