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 都必须匹配对 CcUnpinRepinnedBcb的后续调用。

由于 CcUnpinRepinnedBcb 以独占方式获取 BCB 资源,因此调用方必须非常小心,以避免死锁。 如果可能,调用方不应拥有任何资源。 否则,调用方必须确保它没有固定在同一缓存文件中的其他内容。 通常 CcUnpinRepinnedBcb 在请求完成期间调用,在释放所有其他资源之后。

CcUnpinRepinnedBcb 同步写入缓冲区(用于写通请求),并取消固定先前调用 CcRepinBcb的 BCB。

要求

要求 价值
目标平台 普遍
标头 ntifs.h (include Ntifs.h)
NtosKrnl.lib
DLL NtosKrnl.exe

另请参阅

CcRepinBcb