ReadLogRecord 函式 (clfsw32.h)
從指定的記錄序號起始讀取序列, (LSN) 三種模式之一,並傳回指定記錄檔記錄和讀取內容的第一個。 用戶端可以將讀取內容傳遞至 ReadNextLogRecord,以在指定的模式中讀取後續記錄。
語法
CLFSUSER_API BOOL ReadLogRecord(
[in] PVOID pvMarshal,
[in] PCLFS_LSN plsnFirst,
[in] CLFS_CONTEXT_MODE eContextMode,
[out] PVOID *ppvReadBuffer,
[out] PULONG pcbReadBuffer,
[out] PCLFS_RECORD_TYPE peRecordType,
[out] PCLFS_LSN plsnUndoNext,
[out] PCLFS_LSN plsnPrevious,
[out] PVOID *ppvReadContext,
[in, out, optional] LPOVERLAPPED pOverlapped
);
參數
[in] pvMarshal
使用 CreateLogMarshallingArea 函式配置之封送處理內容的指標。
[in] plsnFirst
CLFS_LSN 結構的指標,指定讀取作業應該啟動之記錄的記錄序號 (LSN) 。
此值必須是記錄使用中範圍內有效記錄的 LSN。
[in] eContextMode
*ppvReadContext 中傳回之讀取內容的模式。
下表識別三種互斥讀取模式。
值 | 意義 |
---|---|
|
讀取 plsnPrevious 連結至 的記錄。 |
|
讀取 plsnUndoNext 連結至的記錄鏈結。 |
|
使用緊接在讀取內容中目前 LSN 後面的 LSN 讀取記錄。 |
[out] ppvReadBuffer
變數的指標,可接收記錄 I/O 區塊中目標記錄的指標。
[out] pcbReadBuffer
變數的指標,以位元組為單位接收 *ppvReadBuffer 中傳回的數據大小。
[out] peRecordType
接收讀取記錄類型的變數指標。
此參數是其中一個 CLFS_RECORD_TYPE常數。
[out] plsnUndoNext
CLFS_LSN 結構的指標,該結構會接收復原記錄鏈結中下一筆記錄的 LSN。
[out] plsnPrevious
CLFS_LSN 結構的指標 ,該結構會接收上一筆記錄鏈結中下一筆記錄的 LSN。
[out] ppvReadContext
變數的指標,會在讀取成功時接收系統配置的讀取內容指標。
如果函式延遲作業完成,它會傳回有效的讀取內容指標和 ERROR_IO_PENDING的錯誤狀態。 在其他所有錯誤上,讀取內容指標為 NULL。 如需處理函式延遲完成的詳細資訊,請參閱本主題的一節。
取得所有要求的記錄檔記錄之後,客戶端必須將讀取內容傳遞至 TerminateReadLog ,以釋放相關聯的記憶體。 失敗會導致記憶體外洩。
[in, out, optional] pOverlapped
重迭結構的指標,這是異步操作的必要專案。
如果未使用異步操作,此參數可以是 NULL 。
傳回值
如果函式成功,則傳回非零的值。
如果此函式失敗,則傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。
下列清單會識別可能的錯誤碼。
備註
如果 CreateLogMarshallingArea 指定的記錄區塊大小不足以保存完整的記錄區塊,就會傳回錯誤訊息ERROR_LOG_BLOCK_INCOMPLETE。
如果使用有效的 pOverlapped 結構呼叫 ReadLogRecord,並使用重疊選項建立記錄句柄,則如果呼叫此函式失敗並出現錯誤碼ERROR_IO_PENDING,則有效的讀取內容的指標會放在 ppvReadContext 參數所指向的變數中。
如果您嘗試開啟比先前呼叫 CreateLogMarshallingArea 中指定的數目緩衝區更多的讀取內容,則會傳回ERROR_LOG_BLOCK_EXHAUSTED。
若要完成記錄檔記錄複製,客戶端應該先使用 GetOverlappedResult 或其中一個同步 處理等候函式,以延遲完成重疊 I/O 作業的執行。 如需詳細資訊,請參閱 同步處理和重疊的輸入和輸出。
在 ReadLogRecord 以異步方式完成之後,要求記錄會從磁碟讀取,但不會解析為 *ppvReadBuffer 中的指標。
若要完成要求的讀取並取得記錄檔記錄的有效指標,客戶端必須呼叫 ReadNextLogRecord,這會傳入 ReadLogRecord 傳 回的讀取內容指標。
CLFS 讀取內容一次不應該傳遞至多個異步讀取,否則函式會因為ERROR_BUSY而失敗。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 R2 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | clfsw32.h |
程式庫 | Clfsw32.lib |
Dll | Clfsw32.dll |