Función CreateLogMarshallingArea (clfsw32.h)
Crea un área de serialización para un registro y, cuando se ejecuta correctamente, devuelve un contexto de serialización. Antes de crear un área de serialización, el registro debe tener al menos un contenedor.
El contexto de serialización se usa para anexar o leer registros de un registro. Dado que los registros siempre se almacenan en bloques de registro, deben pasar por el contexto de serialización.
Los registros se escriben llamando a ReserveAndAppendLog.
Sintaxis
CLFSUSER_API BOOL CreateLogMarshallingArea(
[in] HANDLE hLog,
[in, optional] CLFS_BLOCK_ALLOCATION pfnAllocBuffer,
[in, optional] CLFS_BLOCK_DEALLOCATION pfnFreeBuffer,
[in, optional] PVOID pvBlockAllocContext,
[in] ULONG cbMarshallingBuffer,
[in] ULONG cMaxWriteBuffers,
[in] ULONG cMaxReadBuffers,
[out] PVOID *ppvMarshal
);
Parámetros
[in] hLog
Identificador del registro que se obtiene de CreateLogFile.
El identificador de registro puede hacer referencia a un registro dedicado o multiplexado.
[in, optional] pfnAllocBuffer
Función de devolución de llamada que asigna memoria para bloques de registro.
Si este parámetro es NULL, el sistema de archivos de registro común (CLFS) proporciona una función de asignación de bloques predeterminada. Este parámetro no puede ser NULL si se especifica una devolución de llamada de libreción de bloques mediante el parámetro pfnFreeBuffer .
En el ejemplo siguiente se identifica la sintaxis de la función de devolución de llamada de asignación de bloques:
typedef PVOID (* CLFS_BLOCK_ALLOCATION) (ULONG cbBufferSize, PVOID pvUserContext);
[in, optional] pfnFreeBuffer
Función de devolución de llamada que libera bloques de registro asignados por pfnAllocBuffer.
Si este parámetro es NULL, CLFS proporciona una función de desasignación de bloques predeterminada. Este parámetro no puede ser NULL si se especifica una devolución de llamada de asignación de bloques mediante el parámetro pfnAllocBuffer .
En el ejemplo siguiente se identifica la sintaxis de la función de devolución de llamada de libreción de bloques:
typedef void (* CLFS_BLOCK_DEALLOCATION) (PVOID pvBuffer, PVOID pvUserContext);
El parámetro de búfer de "ClfsBlockDeallocProc" debe apuntar a un bloque asignado mediante la devolución de llamada a la que apunta pfnAllocBuffer.
[in, optional] pvBlockAllocContext
Puntero a un búfer que se pasa como contexto de usuario a las rutinas de asignación y desasignación de bloques, si se especifica un búfer.
Si pfnAllocBuffer es NULL, este parámetro se omite.
[in] cbMarshallingBuffer
Tamaño, en bytes, de los bloques de E/S de registro individuales que usará el nuevo área de cálculo de referencias. Debe ser un múltiplo del tamaño del sector en el medio de almacenamiento estable. El tamaño del sector es el valor devuelto en el parámetro lpBytesPerSector de la función GetDiskFreeSpace .
Los registros no se pueden anexar ni leer si son más largos que este valor.
[in] cMaxWriteBuffers
Número máximo de bloques que se pueden asignar en cualquier momento para las operaciones de escritura.
Este valor puede afectar a la frecuencia de vaciado de datos. Si no necesita especificar un límite para controlar la frecuencia del ciclo de vaciado de datos, especifique INFINITE.
[in] cMaxReadBuffers
Número máximo de bloques que se pueden asignar en cualquier momento para las operaciones de lectura.
Los contextos de lectura usan al menos un bloque de lectura.
[out] ppvMarshal
Puntero al contexto de cálculo de referencias que CLFS asigna cuando CreateLogMarshallingArea se completa correctamente.
Este contexto se debe usar con todas las operaciones de lectura, anexión, escritura y vaciado para registrar las áreas de serialización. Todas las operaciones que acceden a las áreas de serialización mediante un contexto de serialización son seguras para subprocesos. Este parámetro es NULL si la operación no se realiza correctamente.
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:
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 |