ReserveAndAppendLog 函式 (clfsw32.h)
保留記錄緩衝區的空間,或將記錄檔記錄附加至記錄檔,或同時保留兩者。 函式是不可部分完成的。
語法
CLFSUSER_API BOOL ReserveAndAppendLog(
[in] PVOID pvMarshal,
[in, optional] PCLFS_WRITE_ENTRY rgWriteEntries,
[in] ULONG cWriteEntries,
[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, optional] plsnUndoNext
CLFS_LSN 結構的指標,指定復原鏈結中下一筆記錄 (LSN) 的記錄序號。
[in, optional] plsnPrevious
CLFS_LSN 結構的指標,指定上一個鏈結中前一筆記錄的 LSN。
[in] cReserveRecords
rgcbReservation 陣列中的記錄大小數目。
[in, out, optional] rgcbReservation
cReserveRecords 參數所指定之每個記錄的保留大小陣列指標。
如果 cReserveRecords 參數為零,則會忽略此參數。 如果保留大小為負數,則會釋放該大小的保留。
在成功完成時,會傳回個別數位元素中保留給每個記錄的實際空間,包括必要的額外負荷。 這些值可以傳遞至 FreeReservedLog 函式,以調整封送處理區域中保留的空間。
[in] fFlags
指定此函式行為的旗標。
可以合併下列一或多個值。
[out, optional] plsn
接收附加記錄之 LSN 之CLFS_LSN 結構的指標。
[in, out, optional] pOverlapped
重疊結構的指標。
如果未使用異步操作,這個參數可以是 NULL 。
傳回值
如果函式成功,則傳回非零的值。
如果此函式失敗,則傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError 函 式。
下列清單會識別可能的錯誤碼:
備註
ReserveAndAppendLog 函式所傳回的 LSN 不一定是所使用的下一個 LSN。 傳回的 LSN 是下一個 LSN 的估計值,它會根據 fFlags 參數所指定的旗標而有所不同。 移動基底尾時,可以使用傳回的 LSN。 下一次呼叫此函式時,此 LSN 會失效。
如果 ReserveAndAppendLog 函式傳回 ERROR_LOG_FILE_FULL,則記錄中不會再有空間。 這可以透過下列其中一種方式來解決:
- 釋放任何不必要的保留。
- 將基底 LSN 或記錄封存結尾或兩者前移,以回收容器。
- 將容器新增至記錄。
如果使用有效的 pOverlapped 結構呼叫 ReserveAndAppendLog 函式,並使用重疊的選項建立記錄句柄,則如果呼叫此函式失敗並出現錯誤碼ERROR_IO_PENDING,則會將有效的讀取內容的指標放在 ppvReadContext 參數所指向的變數中。
若要完成記錄記錄複製,客戶端應該先使用 GetOverlappedResult 函式或其中一個同步 處理等候函式,以延遲完成重疊 I/O 作業的執行。 如需詳細資訊,請參閱 同步處理和重疊的輸入和輸出。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 R2 [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | clfsw32.h |
程式庫 | Clfsw32.lib |
Dll | Clfsw32.dll |