次の方法で共有


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