CreateLogMarshallingArea 함수(clfsw32.h)
로그에 대한 마샬링 영역을 만들고 성공하면 마샬링 컨텍스트를 반환합니다. 마샬링 영역을 만들기 전에 로그에 컨테이너가 하나 이상 있어야 합니다.
마샬링 컨텍스트는 로그에서 레코드를 추가하거나 레코드를 읽는 데 사용됩니다. 레코드는 항상 로그 블록에 저장되므로 마샬링 컨텍스트를 통과해야 합니다.
로그 레코드는 ReserveAndAppendLog를 호출하여 작성됩니다.
구문
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
);
매개 변수
[in] hLog
CreateLogFile에서 가져온 로그에 대한 핸들입니다.
로그 핸들은 전용 또는 멀티플렉싱 로그를 참조할 수 있습니다.
[in, optional] pfnAllocBuffer
로그 블록에 메모리를 할당하는 콜백 함수입니다.
이 매개 변수가 NULL인 경우 CLFS(Common Log File System)는 기본 블록 할당 함수를 제공합니다. pfnFreeBuffer 매개 변수를 사용하여 블록 해제 콜백을 지정한 경우 이 매개 변수는 NULL일 수 없습니다.
다음 예제에서는 블록 할당 콜백 함수의 구문을 식별합니다.
typedef PVOID (* CLFS_BLOCK_ALLOCATION) (ULONG cbBufferSize, PVOID pvUserContext);
[in, optional] pfnFreeBuffer
pfnAllocBuffer에서 할당한 로그 블록을 해제하는 콜백 함수입니다.
이 매개 변수가 NULL이면 CLFS는 기본 블록 할당 취소 함수를 제공합니다. pfnAllocBuffer 매개 변수를 사용하여 블록 할당 콜백을 지정한 경우 이 매개 변수는 NULL일 수 없습니다.
다음 예제에서는 블록 해제 콜백 함수의 구문을 식별합니다.
typedef void (* CLFS_BLOCK_DEALLOCATION) (PVOID pvBuffer, PVOID pvUserContext);
"ClfsBlockDeallocProc"의 버퍼 매개 변수는 pfnAllocBuffer가 가리키는 콜백을 사용하여 할당된 블록을 가리킵니다.
[in, optional] pvBlockAllocContext
버퍼가 지정된 경우 블록 할당 및 할당 취소 루틴에 사용자 컨텍스트로 다시 전달되는 버퍼에 대한 포인터입니다.
pfnAllocBuffer가 NULL이면 이 매개 변수는 무시됩니다.
[in] cbMarshallingBuffer
새 마샬링 영역에서 사용할 개별 로그 I/O 블록의 크기(바이트)입니다. 안정적인 스토리지 매체의 섹터 크기의 배수여야 합니다. 섹터 크기는 GetDiskFreeSpace 함수의 lpBytesPerSector 매개 변수에 반환된 값입니다.
레코드가 이 값보다 긴 경우 레코드를 추가하거나 읽을 수 없습니다.
[in] cMaxWriteBuffers
쓰기 작업에 언제든지 할당할 수 있는 최대 블록 수입니다.
이 값은 데이터 플러시 빈도에 영향을 줄 수 있습니다. 데이터 플러시 주기의 빈도를 제어하는 제한을 지정할 필요가 없는 경우 INFINITE를 지정합니다.
[in] cMaxReadBuffers
읽기 작업에 언제든지 할당할 수 있는 최대 블록 수입니다.
읽기 컨텍스트는 하나 이상의 읽기 블록을 사용합니다.
[out] ppvMarshal
CreateLogMarshallingArea가 성공적으로 완료될 때 CLFS가 할당하는 마샬링 컨텍스트에 대한 포인터입니다.
이 컨텍스트는 로그 마샬링 영역에 대한 모든 읽기, 추가, 쓰기 및 플러시 작업과 함께 사용해야 합니다. 마샬링 컨텍스트를 사용하여 마샬링 영역에 액세스하는 모든 작업은 스레드로부터 안전합니다. 작업이 성공하지 못한 경우 이 매개 변수는 NULL 입니다.
반환 값
함수가 성공하면 반환 값이 0이 아닙니다.
함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.
다음 목록에서는 가능한 오류 코드를 식별합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2003 R2 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | clfsw32.h |
라이브러리 | Clfsw32.lib |
DLL | Clfsw32.dll |