Función ReserveAndAppendLog (clfsw32.h)
Reserva espacio para los búferes de registro, o anexa un registro al registro, o bien ambos. La función es atómica.
Sintaxis
CLFSUSER_API BOOL ReserveAndAppendLog(
[in] PVOID pvMarshal,
[in, optional] PCLFS_WRITE_ENTRY rgWriteEntries,
[in] ULONG cWriteEntries,
[in, optional] PCLFS_LSN plsnUndoNext,
[in, optional] PCLFS_LSN plsnPrevious,
[in] ULONG cReserveRecords,
[in, out, optional] LONGLONG [] rgcbReservation,
[in] ULONG fFlags,
[out, optional] PCLFS_LSN plsn,
[in, out, optional] LPOVERLAPPED pOverlapped
);
Parámetros
[in] pvMarshal
Puntero a un contexto de serialización asignado mediante la función CreateLogMarshallingArea .
[in, optional] rgWriteEntries
Puntero a una matriz de CLFS_WRITE_ENTRY búferes que se van a serializar en un registro.
Este parámetro se omite si el parámetro cWriteEntries es cero.
[in] cWriteEntries
Número de entradas de escritura en la matriz rgWriteEntries .
Si este valor es distinto de cero, debe especificar un búfer en el parámetro rgWriteEntries .
[in, optional] plsnUndoNext
Puntero a una estructura de CLFS_LSN que especifica el número de secuencia de registro (LSN) del siguiente registro de la cadena de deshacer.
[in, optional] plsnPrevious
Puntero a una estructura de CLFS_LSN que especifica el LSN del registro anterior en la cadena anterior.
[in] cReserveRecords
Número de tamaños de registro en la matriz rgcbReservation .
[in, out, optional] rgcbReservation
Puntero a una matriz de tamaños de reserva para cada registro que especifica el parámetro cReserveRecords .
Este parámetro se omite si el parámetro cReserveRecords es cero. Si un tamaño de reserva es negativo, se libera una reserva de ese tamaño.
El espacio real reservado para cada registro, incluida la sobrecarga necesaria, se devuelve en los elementos de matriz individuales cuando se completa correctamente. Estos valores se pueden pasar a la función FreeReservedLog para ajustar el espacio reservado en el área de cálculo de referencias.
[in] fFlags
Marcas que especifican el comportamiento de esta función.
Se pueden combinar uno o varios de los valores siguientes.
[out, optional] plsn
Puntero a una estructura CLFS_LSN que recibe el LSN del registro anexado.
[in, out, optional] pOverlapped
Puntero a una estructura OVERLAPPED.
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 ampliada de los errores, llame a la función GetLastError.
En la lista siguiente se identifican los posibles códigos de error:
Comentarios
El LSN devuelto por la función ReserveAndAppendLog no es necesariamente el siguiente LSN que se usa. El LSN que se devuelve es una estimación del siguiente LSN y varía en función de las marcas especificadas por el parámetro fFlags . El LSN que se devuelve se puede usar al mover la cola base. La siguiente llamada a esta función invalida este LSN.
Si la función ReserveAndAppendLog devuelve ERROR_LOG_FILE_FULL, no hay más espacio en el registro. Esto se puede resolver de una de las maneras siguientes:
- Libere las reservas innecesarias.
- Avance el LSN base o el final del archivo de registro, o ambos, para reciclar los contenedores.
- Agregue contenedores al registro.
Si se llama a la función ReserveAndAppendLog con una estructura pOverlapped válida y el identificador de registro se crea con la opción superpuesta, si se produce un error en una llamada a esta función 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 del registro, el cliente debe sincronizar primero su ejecución con la finalización diferida de la operación de E/S superpuesta mediante la función 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.
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 |