다음을 통해 공유


ClfsMgmtSetLogFileSize 함수(wdm.h)

ClfsMgmtSetLogFileSize 루틴은 로그에 컨테이너를 추가하거나 로그에서 컨테이너를 삭제합니다.

구문

CLFSUSER_API NTSTATUS ClfsMgmtSetLogFileSize(
  [in]           PLOG_FILE_OBJECT                     LogFile,
  [in]           PULONGLONG                           NewSizeInContainers,
  [out]          PULONGLONG                           ResultingSizeInContainers,
  [in, optional] PCLFS_SET_LOG_SIZE_COMPLETE_CALLBACK CompletionRoutine,
  [in, optional] PVOID                                CompletionRoutineData
);

매개 변수

[in] LogFile

컨테이너가 추가 또는 삭제되는 CLFS 로그 또는 로그 내의 스트림을 나타내는 LOG_FILE_OBJECT 구조체에 대한 포인터입니다.

[in] NewSizeInContainers

요청된 로그 크기에 대한 포인터입니다. 호출자는 이 매개 변수를 다음 값 중 하나로 설정합니다.

의미
0 최소 크기 정책을 적용합니다. 이 정책에 대한 자세한 내용은 ClfsMgmtInstallPolicy를 참조하세요.

최소 크기 정책이 설치되지 않은 경우 다음 중 하나가 발생합니다.

  • 로그에 현재 2개 미만의 컨테이너가 있는 경우 로그는 2개의 컨테이너 크기로 확장됩니다.
  • 로그에 현재 2개 이상의 컨테이너가 있는 경우 변경 내용이 없고 호출이 성공합니다.
최소 크기 정책이 설치된 경우 다음 중 하나가 발생합니다.
  • 로그가 현재 최소 크기 정책에서 지정한 최소 컨테이너 수보다 작은 경우 로그는 정책에서 지정한 최소 컨테이너 수로 확장됩니다.
  • 로그의 컨테이너 수가 최소 크기 정책에서 지정한 최소 컨테이너 수보다 크거나 같으면 변경되지 않으며 오류 없이 호출이 성공합니다.
1 값이 잘못되었습니다. 호출이 실패하고 STATUS_INVALID_VALUE 반환합니다.
2에서 1023까지 컨테이너 수로 표현되는 로그의 원하는 크기입니다.

이 숫자가 설치된 정책에 지정된 최소 컨테이너 수보다 작으면 ERROR_COULD_NOT_RESIZE_LOG 호출이 실패합니다.

이 숫자가 설치된 정책에 지정된 최대 컨테이너 수보다 크면 로그는 정책에서 지정한 최대 컨테이너 수까지만 확장되며 호출은 오류 없이 성공합니다.

1024 ~ MAXULONGLONG 최대 크기 정책이 설치되지 않은 경우 호출이 실패하고 ERROR_LOG_POLICY_CONFLICT 반환합니다.

최대 크기 정책이 설치된 경우 로그는 최대 크기 정책에 지정된 최대 컨테이너 수로 확장되고 오류 없이 호출이 성공합니다.

 

요청된 크기와 다를 수 있는 실제 로그 크기를 확인하려면 ResultingSizeInContainers 매개 변수를 사용합니다.

[out] ResultingSizeInContainers

결과 로그 크기에 대한 포인터입니다. 성공하면 루틴은 로그의 컨테이너 수로 표현되는 로그의 실제 크기를 이 매개 변수가 가리키는 위치에 씁니다.

[in, optional] CompletionRoutine

사용되지 않습니다. NULL로 설정됨.

[in, optional] CompletionRoutineData

사용되지 않습니다. NULL로 설정됨.

반환 값

ClfsMgmtSetLogFileSize 루틴은 다음 NTSTATUS 값 중 하나를 반환합니다.

반환 코드 설명
STATUS_SUCCESS
로그 파일 크기가 설정되었습니다. ResultingSizeInContainers 매개 변수에는 로그의 현재 크기가 포함됩니다.
STATUS_UNSUCCESSFUL
CLFS 관리에서 로그 파일 크기를 설정할 수 없습니다.
STATUS_INVALID_PARAMETER_1
LogFile 매개 변수의 값이 NULL이거나 NewSizeInContainers 매개 변수의 내용이 1입니다.
STATUS_INVALID_PARAMETER_2
NewSizeInContainers 매개 변수의 값은 NULL입니다.
STATUS_LOG_POLICY_INVALID
로그의 최대 크기와 최소 크기 정책 간에 충돌이 있습니다.
STATUS_COULD_NOT_RESIZE_LOG
CLFS 관리에서 NewSizeInContainers에 도달하기에 충분한 컨테이너를 삭제할 수 없습니다.
STATUS_LOG_POLICY_CONFLICT
CLFS 관리에서 NewSizeInContainers에 도달하기에 충분한 컨테이너를 로그에 추가할 수 없습니다. 이는 클라이언트가 설정한 정책과 충돌하기 때문일 수 있습니다.
 

이 루틴은 다른 NTSTATUS 값을 반환할 수도 있습니다.

설명

ClfsMgmtSetLogFileSize 루틴은 일반적으로 클라이언트가 시작되거나 중지되는 경우에만 사용됩니다. ClfsAdvanceTailCallback 함수 내에서 ClfsMgmtSetLogFileSize 루틴을 호출하지 마세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Server 2003 R2 및 Windows Vista부터 사용할 수 있습니다.
대상 플랫폼 데스크톱
헤더 wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함)
라이브러리 Clfs.lib
DLL Clfs.sys
IRQL <= APC_LEVEL

추가 정보

CLFS_MGMT_POLICY_TYPE

ClfsMgmtInstallPolicy