共用方式為


ClfsAddLogContainerSet 函式 (wdm.h)

ClfsAddLogContainerSet 例程會以不可部分完成的方式,將一組容器新增至 CLFS 記錄。

語法

CLFSUSER_API NTSTATUS ClfsAddLogContainerSet(
  [in]           PLOG_FILE_OBJECT plfoLog,
  [in]           USHORT           cContainers,
  [in, optional] PULONGLONG       pcbContainer,
  [in]           PUNICODE_STRING  rguszContainerPath
);

參數

[in] plfoLog

LOG_FILE_OBJECT 結構的指標,表示將加入容器的記錄檔。 呼叫端先前透過呼叫 ClfsCreateLogFile 來取得此指標。

[in] cContainers

集合中的容器數目。 這是 rguszContainerPath 陣列中的元素數目。

[in, optional] pcbContainer

ULONGLONG 型別變數的指標。 此參數的角色取決於記錄檔目前是否至少有一個容器。

  • 如果記錄檔目前沒有容器,則呼叫端會提供一個正整數,其為個別容器的要求大小,以位元組為單位。 CLFS 會建立容器,這些容器要求的大小會四捨五入為 512KB 的倍數(用於專用記錄檔)或 1MB(用於多任務記錄檔)。
  • 如果記錄檔目前至少有一個容器,而且此參數是 NULL 指標,CLFS 會建立與現有容器大小相同的新容器。 (記錄中的所有容器的大小都必須相同。
  • 如果記錄檔目前至少有一個容器,而且此參數是有效的指標,則呼叫端會提供一個正整數,該整數是個別容器的要求大小,以位元組為單位。 要求的大小會四捨五入為512KB的倍數(適用於專用記錄檔)或1MB(針對共用記錄)。 如果進位大小至少與現有的容器大小相同,CLFS 會建立與現有容器大小相同的新容器。 成功傳回時,此參數會收到現有的容器大小。 如果進位大小小於現有的容器大小,ClfsAddLogContainerSet 失敗。

[in] rguszContainerPath

UNICODE_STRING 結構的陣列指標。 每個字串都會提供其中一個新容器的路徑名稱。 陣列中的元素數目是由 cContainers 所指定。 指定的路徑可以是絕對路徑,或相對於基底記錄檔的位置。 相對於基底記錄檔的路徑必須以 CLFS_CONTAINER_RELATIVE_PREFIX 開頭,也就是字串常值 (L“%BLF%\]。

傳回值

ClfsAddLogContainer 會在成功時傳回STATUS_SUCCESS;否則,它會傳回 Ntstatus.h 中定義的其中一個錯誤碼。

言論

容器是穩定記憶體上的連續範圍。 例如,容器可能是磁碟上的連續檔案。 記錄檔是一組容器以及基底記錄檔。 如需容器的詳細資訊,請參閱 CLFS 穩定記憶體

相對於基底記錄檔的路徑所指定的容器,必須與基底記錄檔或基底記錄檔的子目錄位於相同的目錄中。 相對路徑中不允許目錄 “.” 和 “..”。

記錄可以有一些具有絕對路徑的容器,以及具有相對路徑的其他容器。

容器會以非壓縮模式建立,並以零初始化。

記錄檔必須至少有兩個容器,才能在它上執行任何 I/O。

如需 CLFS 概念和術語的說明,請參閱 Common Log File System

要求

要求 價值
最低支援的用戶端 適用於 Windows Server 2003 R2、Windows Vista 和更新版本的 Windows。
目標平臺 桌面
標頭 wdm.h (包括 Wdm.h)
連結庫 Clfs.lib
DLL Clfs.sys
IRQL <= APC_LEVEL

另請參閱

ClfsAddLogContainer

ClfsRemoveLogContainerSet