ReadLogRestartArea 函式 (clfsw32.h)
傳回最後一個成功寫入 至 WriteLogRestartArea封送處理區域相關聯之記錄檔的重新開機區域。 函式也會傳回讀取內容,讓呼叫端從重新開機記錄向後或向前游標指標。
在叫用 ReadPreviousLogRestartArea之前掃描先前的重新開機區域時,此讀取內容很有用。
語法
CLFSUSER_API BOOL ReadLogRestartArea(
[in] PVOID pvMarshal,
[out] PVOID *ppvRestartBuffer,
[out] PULONG pcbRestartBuffer,
[out] PCLFS_LSN plsn,
[out] PVOID *ppvContext,
[in, out, optional] LPOVERLAPPED pOverlapped
);
參數
[in] pvMarshal
使用 CreateLogMarshallingArea 函式配置之封送處理內容的指標。
[out] ppvRestartBuffer
變數的指標,可接收記錄 I/O 區塊中重新開機資料的指標。
[out] pcbRestartBuffer
接收重新開機資料的變數指標。
[out] plsn
接收重新開機區域之 LSN (LSN) 記錄序號的CLFS_LSN結構的指標。
[out] ppvContext
變數的指標,會在讀取成功時接收系統組態的讀取內容指標。
如果函式延遲作業完成,它會傳回有效的讀取內容指標和 ERROR_IO_PENDING的錯誤狀態。 在其他所有錯誤上,讀取內容指標為 Null。 如需處理函式延遲完成的詳細資訊,請參閱本主題的一節。
取得所有要求的記錄檔記錄之後,用戶端必須將讀取內容傳遞至 TerminateReadLog ,以釋放相關聯的記憶體。 失敗會導致記憶體外泄。
[in, out, optional] pOverlapped
非同步作業所需的 重迭 結構指標。
如果未使用非同步作業,此參數可以是 Null 。
傳回值
如果函式成功,則傳回非零的值。
如果此函式失敗,則傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。
下列清單會識別可能的錯誤碼:
備註
如果 CreateLogMarshallingArea 指定的記錄區塊大小不足以保存完整的記錄區塊,就會傳回錯誤訊息ERROR_LOG_BLOCK_INCOMPLETE。
一般而言, ReadLogRestartArea 只會在用戶端重新開機期間使用,不論是在當機或正常關機之後。
如果記錄檔中沒有重新開機區域, ReadLogRestartArea 會失敗,且程式碼 ERROR_LOG_NO_RESTART。
如果 ReadLogRestartArea 失敗並出現錯誤碼 ERROR_IO_PENDING,則有效的讀取內容的指標會放在 ppvReadCoNtext 參數所指向的變數中。
若要完成記錄檔複製,用戶端應該先呼叫 GetOverlappedResult或其中一個同步 處理等候函式,以延遲完成重迭 I/O 作業的執行。 如需詳細資訊,請參閱 同步處理和重迭的輸入和輸出。
ReadLogRestartArea以非同步方式完成之後,要求重新開機區域會從磁片讀取,但是它的有效指標不會放在*ppvRestartBuffer中。
若要取得有效的指標,用戶端必須呼叫 ReadPreviousLogRestartArea,此指標會傳入 ReadLogRestartArea所傳回的讀取內容指標。
CLFS 讀取內容一次不應該傳遞至多個非同步讀取,否則函式會因為ERROR_BUSY而失敗。
規格需求
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 R2 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | clfsw32.h |
程式庫 | Clfsw32.lib |
Dll | Clfsw32.dll |