CcUnpinRepinnedBcb 函式 (ntifs.h)
CcUnpinRepinnedBcb 例程會將重新釘選的緩衝區控制區塊取消釘選 (BCB) 。
語法
void CcUnpinRepinnedBcb(
[in] PVOID Bcb,
[in] BOOLEAN WriteThrough,
[out] PIO_STATUS_BLOCK IoStatus
);
參數
[in] Bcb
重新釘選 BCB 的指標。
[in] WriteThrough
如果應該透過BCB寫入,請將 設定為 TRUE 。
[out] IoStatus
IO_STATUS_BLOCK 結構的指標。 如果呼叫 CcUnpinRepinnedBcb 成功, IoStatus.Status 會設定為 STATUS_SUCCESS。 否則,它會設定為適當的NTSTATUS錯誤碼。 IoStatus.Information 會設定為成功排清到磁碟的實際位元組數目。
傳回值
無
備註
文件系統會呼叫 CcUnpinRepinnedBcb ,將先前釘選的緩衝區寫入磁碟。
每次對 CcRepinBcb 的呼叫都必須比對 CcUnpinRepinRepinnedBcb 的後續呼叫。
因為 CcUnpinRepinnedBcb 以獨佔方式取得 BCB 資源,所以呼叫端必須非常小心,以避免死結。 可能的話,呼叫端不應該擁有任何資源。 否則,呼叫端必須保證它沒有任何其他釘選在相同快取的檔案中。 一般而言,在要求完成期間呼叫 CcUnpinRepinnedBcb ,在所有其他資源都已釋放之後。
CcUnpinRepinnedBcb 會同步寫入緩衝區 (以進行寫入要求) ,並取消釘選先前呼叫 CcRepinBcb 所重新釘選的 BCB。
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
標頭 | ntifs.h (包含 Ntifs.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |