共用方式為


ReserveAndAppendLogAligned 函式 (clfsw32.h)

保留記錄緩衝區的空間,或將記錄檔記錄附加至記錄檔,或兩者。 此函式就像 ReserveAndAppendLog 函式,但 ReserveAndAppendLogAligned 會將記錄的寫入專案對齊指定的位元組對齊方式。

語法

CLFSUSER_API BOOL ReserveAndAppendLogAligned(
  [in]                PVOID             pvMarshal,
  [in, optional]      PCLFS_WRITE_ENTRY rgWriteEntries,
  [in]                ULONG             cWriteEntries,
  [in]                ULONG             cbEntryAlignment,
  [in, optional]      PCLFS_LSN         plsnUndoNext,
  [in, optional]      PCLFS_LSN         plsnPrevious,
  [in]                ULONG             cReserveRecords,
  [in, out, optional] LONGLONG []       rgcbReservation,
  [in]                ULONG             fFlags,
  [out, optional]     PCLFS_LSN         plsn,
  [in, out, optional] LPOVERLAPPED      pOverlapped
);

參數

[in] pvMarshal

使用 CreateLogMarshallingArea 函式配置之封送處理內容的指標。

[in, optional] rgWriteEntries

要封送處理成一筆記錄之 CLFS_WRITE_ENTRY 緩衝區陣列的指標。

如果 cWriteEntries 參數為零,則會忽略此參數。

[in] cWriteEntries

rgWriteEntries陣列中的寫入專案數目。

如果此值為非零值,您必須在 rgWriteEntries 參數中指定緩衝區。

[in] cbEntryAlignment

rgWriteEntries參數中每個寫入專案的位元組對齊方式。

針對簡單的串連指定 1 (一個) 。 cbWriteEntryAlignment參數必須是非零。

[in, optional] plsnUndoNext

CLFS_LSN 結構的指標 ,指定復原鏈結中下一筆記錄的 LSN (LSN) 記錄序號。

[in, optional] plsnPrevious

CLFS_LSN結構的指標,指定上一筆記錄在上一個鏈結中的 LSN。

[in] cReserveRecords

rgcbReservation陣列中的記錄大小數目。

[in, out, optional] rgcbReservation

cReserveRecords參數指定之每個記錄的保留大小陣列指標。

如果 cReserveRecords 參數為零,則會忽略此參數。 如果保留大小為負數,則會釋放該大小的保留。

在成功完成時,會傳回個別陣列元素中保留給每個記錄的實際空間,包括必要的額外負荷。 這些值可以傳遞至 FreeReservedLog 函式,以調整封送處理區域中保留的空間。

[in] fFlags

指定此函式行為的旗標。

可以結合下列一或多個值。

意義
CLFS_FLAG_FORCE_APPEND
指派先前未指派實體位置之記錄中所有附加記錄的實體位置。

所有這些記錄都可供從其他封送處理內容讀取。

CLFS_FLAG_FORCE_FLUSH
指派先前未指派實體位置之記錄中所有附加記錄的實體位置。

所有這些記錄都可供從其他封送處理內容讀取。 然後,記錄會排清到磁片。

CLFS_FLAG_NO_FLAGS
不指派任何旗標。
CLFS_FLAG_USE_RESER加值稅ION
使用封送處理區域中保留的空間,附加目前的記錄。

[out, optional] plsn

接收附加記錄之 LSN 之CLFS_LSN 結構的指標。

[in, out, optional] pOverlapped

重迭結構的指標。

如果未使用非同步作業,此參數可以是 Null

傳回值

如果函式成功,則傳回非零的值。

如果此函式失敗,則傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError 函式。 下列清單會識別可能的錯誤碼:

備註

ReserveAndAppendLogAligned函式所傳回的 LSN 不一定是所使用的下一個 LSN。 傳回的 LSN 是下一個 LSN 的估計值,而且會根據 fFlags 參數所指定的旗標而有所不同。 移動基底尾時,可以使用傳回的 LSN。 下一次呼叫此函式時,此 LSN 會失效。

如果 ReserveAndAppendLogAligned 函式傳回 ERROR_LOG_FILE_FULL,則記錄檔中沒有更多空間。 這可以透過下列其中一種方式來解決:

  • 釋放任何不必要的保留。
  • 將基底 LSN 或記錄封存結尾或兩者前移,以回收容器。
  • 將容器新增至記錄。
CLFS 管理 API也提供一種方式來處理涉及完整記錄的案例。

如果使用有效的重迭結構呼叫ReserveAndAppendLogAligned函式,並使用重迭選項建立記錄控制碼,則如果呼叫此函式失敗並出現錯誤碼ERROR_IO_PENDING,則有效的讀取內容的指標會放在ppvReadCoNtext參數所指向的變數中。

若要完成記錄檔記錄複製,用戶端應該先使用 GetOverlappedResult 函式或其中一個同步 處理等候函式,將其執行與重迭 I/O 作業延遲完成同步處理。 如需詳細資訊,請參閱 同步處理和重迭的輸入和輸出

規格需求

   
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 R2 [僅限傳統型應用程式]
目標平台 Windows
標頭 clfsw32.h
程式庫 Clfsw32.lib
Dll Clfsw32.dll

另請參閱

CLFS_LSN

CLFS_WRITE_ENTRY

一般記錄檔系統函式

重疊