다음을 통해 공유


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

버퍼가 지정된 경우 블록 할당 및 할당 취소 루틴에 사용자 컨텍스트로 다시 전달되는 버퍼에 대한 포인터입니다.

pfnAllocBufferNULL이면 이 매개 변수는 무시됩니다.

[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

추가 정보

일반적인 로그 파일 시스템 함수

CreateLogFile

DeleteLogMarshallingArea