Función ReadNextLogRecord (clfsw32.h)

Lee el siguiente registro en una secuencia iniciada por una llamada a ReadLogRecord o ReadLogRestartArea. Con ReadNextLogRecord de forma iterativa, un cliente puede leer todos los registros de un tipo especificado en un registro. La dirección de la enumeración se determina especificando el modo de contexto al iniciar la secuencia de lectura.

Sintaxis

CLFSUSER_API BOOL ReadNextLogRecord(
  [in, out]           PVOID             pvReadContext,
  [out]               PVOID             *ppvBuffer,
  [out]               PULONG            pcbBuffer,
  [in, out]           PCLFS_RECORD_TYPE peRecordType,
  [in, optional]      PCLFS_LSN         plsnUser,
  [out]               PCLFS_LSN         plsnUndoNext,
  [out]               PCLFS_LSN         plsnPrevious,
  [out]               PCLFS_LSN         plsnRecord,
  [in, out, optional] LPOVERLAPPED      pOverlapped
);

Parámetros

[in, out] pvReadContext

Puntero a un contexto de lectura que el sistema asigna y crea durante una llamada correcta a ReadLogRecord o ReadLogRestartArea.

Si la función aplaza la finalización de una operación, devuelve un puntero a un contexto de lectura válido y un estado de error de ERROR_IO_PENDING. Para obtener información sobre cómo controlar la finalización asincrónica, vea la sección Comentarios de este tema.

[out] ppvBuffer

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

[out] pcbBuffer

Puntero a una variable que recibe el tamaño de los datos de lectura que se devuelven en ppvReadBuffer, en bytes.

[in, out] peRecordType

Puntero que, en la entrada, especifica el filtro de tipo de registro de la siguiente lectura del registro y, en la salida, especifica el tipo de registro que se devuelve.

Los clientes pueden especificar cualquiera de los siguientes tipos de registro.

Valor Significado
ClfsDataRecord
Solo se leen los registros de datos de usuario.
ClfsRestartRecord
Solo se leen los registros de reinicio.
ClfsClientRecord
Se leen todos los registros de datos y reinicio.

[in, optional] plsnUser

Puntero a una estructura de CLFS_LSN que especifica el cliente de registro para leer este número de secuencia de registro (LSN) como el siguiente LSN en lugar de leer el siguiente registro, leer el LSN anterior o leer el siguiente LSN de deshacer.

Este parámetro proporciona a los clientes de registro la capacidad de cursor a través de cadenas LSN definidas por el usuario en búferes de cliente. La relación de este parámetro con el LSN actual mantenido por el contexto de lectura debe ser coherente con el modo de contexto, ecxMode, especificado en los puntos de entrada ReadLogRecord ; De lo contrario, se devuelve un código de error de ERROR_INVALID_PARAMETER .

[out] plsnUndoNext

Puntero a una estructura de CLFS_LSN que recibe el LSN del siguiente registro en una cadena de registros deshacer.

[out] plsnPrevious

Puntero a una estructura de CLFS_LSN que recibe el LSN del siguiente registro de la cadena de registros anterior.

[out] plsnRecord

Puntero a una estructura de CLFS_LSN que recibe el LSN del registro actual leído en el contexto de lectura.

[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

Si ReadNextLogRecord devuelve con un código de estado de ERROR_IO_PENDING, el cliente debe sincronizar 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 ReadNextLogRecord se completa de forma asincrónica, el registro solicitado se lee desde el disco, pero no se resuelve en un puntero de *ppvReadBuffer. Para obtener un puntero válido al registro, el cliente debe llamar a ReadNextLogRecord 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

CLFS_RECORD_TYPE

Funciones comunes del sistema de archivos de registro

OVERLAPPED

ReadLogRecord

ReadLogRestartArea

Sincronización y entrada y salida superpuestas