Función ReadPreviousLogRestartArea (clfsw32.h)

Lee el área de reinicio del registro anterior relativa al registro de reinicio actual especificado en el contexto de lectura, pvReadContext. Este contexto de lectura es el creado anteriormente por una llamada a ReadLogRestartArea.

Sintaxis

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

Parámetros

[in] pvReadContext

Puntero a un contexto de lectura asignado por el sistema que readLogRestartArea devuelve.

Incluso cuando esas funciones devuelven ERROR_IO_PENDING, siguen devolviendo un puntero a un contexto de lectura válido. Para obtener información sobre la finalización asincrónica, vea la sección Comentarios de este tema.

[out] ppvRestartBuffer

Puntero a una variable que recibe un puntero a los datos de reinicio.

[out] pcbRestartBuffer

Puntero a una variable que recibe el tamaño de los datos de reinicio en *ppvRestartBuffer, en bytes.

[out] plsnRestart

Puntero a una estructura de CLFS_LSN que recibe el número de secuencia de registro (LSN) del área de reinicio que devuelve esta función.

[in, out, optional] pOverlapped

Puntero a una estructura SUPERPUESTA necesaria para la operación asincrónica.

Este parámetro puede ser NULL si no se usa la operación asincrónica.

Valor devuelto

Si la función se realiza correctamente, el valor devuelto es distinto de cero.

Si la función no se realiza correctamente, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.

En la lista siguiente se identifican los posibles códigos de error:

Comentarios

El mensaje de error ERROR_LOG_BLOCK_INCOMPLETE se devuelve si el tamaño del bloque de registro especificado por CreateLogMarshallingArea no es lo suficientemente grande como para contener un bloque de registro completo.

Si Se produce un error en ReadPreviousLogRestartArea con un código de error de ERROR_IO_PENDING, se coloca un puntero a un contexto de lectura válido en la variable a la que apunta el parámetro ppvReadContext .

Para completar la copia de registro de registro, el cliente debe sincronizar primero su ejecución con la finalización diferida de la operación de E/S superpuesta mediante GetOverlappedResult o una de las funciones de espera de sincronización. Para obtener más información, vea Sincronización y entrada y salida superpuestas.

Una vez que ReadPreviousLogRestartArea se completa de forma asincrónica, el área de reinicio solicitada se lee desde el disco, pero no se coloca un puntero válido en *ppvRestartBuffer.

Para obtener un puntero válido, el cliente debe llamar a ReadPreviousLogRestartArea una segunda vez.

Nota Los contextos de lectura comunes del Sistema de archivos de registro (CLFS) no son seguros para subprocesos. No deben ser utilizados por más de un subproceso a la vez.

Los contextos de lectura de CLFS no deben pasarse a más de una lectura asincrónica a la vez o se produce un error en la función con ERROR_READ.

 

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 R2 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado clfsw32.h
Library Clfsw32.lib
Archivo DLL Clfsw32.dll

Consulte también

CLFS_LSN

Funciones comunes del sistema de archivos de registro

CreateLogFile

OVERLAPPED

ReadLogRestartArea

Sincronización y entrada y salida superpuestas