Funzione ReadPreviousLogRestartArea (clfsw32.h)

Legge l'area di riavvio del log precedente relativa al record di riavvio corrente specificato nel contesto di lettura, pvReadContext. Questo contesto di lettura è quello creato in precedenza da una chiamata a ReadLogRestartArea.

Sintassi

CLFSUSER_API BOOL ReadPreviousLogRestartArea(
  [in]                PVOID        pvReadContext,
  [out]               PVOID        *ppvRestartBuffer,
  [out]               PULONG       pcbRestartBuffer,
  [out]               PCLFS_LSN    plsnRestart,
  [in, out, optional] LPOVERLAPPED pOverlapped
);

Parametri

[in] pvReadContext

Puntatore a un contesto di lettura allocato dal sistema restituito da ReadLogRestartArea .

Anche quando queste funzioni restituiscono ERROR_IO_PENDING, restituiscono comunque un puntatore a un contesto di lettura valido. Per informazioni sul completamento asincrono, vedere la sezione Osservazioni di questo argomento.

[out] ppvRestartBuffer

Puntatore a una variabile che riceve un puntatore ai dati di riavvio.

[out] pcbRestartBuffer

Puntatore a una variabile che riceve le dimensioni dei dati di riavvio in *ppvRestartBuffer, in byte.

[out] plsnRestart

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

[in, out, optional] pOverlapped

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

Questo parametro può essere NULL se l'operazione asincrona non viene usata.

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.

Se ReadPreviousLogRestartArea 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 punta 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 usando GetOverlappedResult o una delle funzioni di attesa di sincronizzazione. Per altre informazioni, vedere Sincronizzazione e output sovrapposti.

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

Per ottenere un puntatore valido, il client deve chiamare ReadPreviousLogRestartArea una seconda volta.

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_READ.

 

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

Vedi anche

CLFS_LSN

Funzioni comuni del file system di log

CreateLogFile

SOVRAPPOSTA

ReadLogRestartArea

Sincronizzazione e sovrapposizione di input e output