Функция CcUnpinRepinnedBcb (ntifs.h)
Подпрограмма CcUnpinRepinnedBcb открепить блок управления буфером (BCB).
Синтаксис
void CcUnpinRepinnedBcb(
[in] PVOID Bcb,
[in] BOOLEAN WriteThrough,
[out] PIO_STATUS_BLOCK IoStatus
);
Параметры
[in] Bcb
Указатель на восстановленную bcb.
[in] WriteThrough
Установите значение TRUE , если необходимо записать bcb.
[out] IoStatus
Указатель на структуру IO_STATUS_BLOCK. Если вызов CcUnpinRepinnedBcb выполнен успешно, ioStatus.Status имеет значение STATUS_SUCCESS. В противном случае устанавливается соответствующий код ошибки NTSTATUS. IoStatus.Information — это фактическое число байтов, которые были успешно выброшены на диск.
Возвращаемое значение
None
Remarks
Файловые системы вызывают CcUnpinRepinnedBcb для записи ранее закрепленного буфера на диск.
Каждый вызов CcRepinBcb должен соответствовать последующему вызову CcUnpinRepinnedBcb.
Так как CcUnpinRepinnedBcb получает исключительно ресурс BCB, вызывающий объект должен быть очень осторожным, чтобы избежать взаимоблокировок. По возможности вызывающий объект не должен владеть ресурсами. В противном случае вызывающий объект должен гарантировать, что в том же кэшированном файле ничего не закреплено. Обычно ccUnpinRepinnedBcb вызывается во время выполнения запроса после освобождения всех остальных ресурсов.
CcUnpinRepinnedBcb синхронно записывает буфер (для запросов через запись) и открепляет BCB, повторно закрепленный при предыдущем вызове CcRepinBcb.
Требования
Требование | Значение |
---|---|
Целевая платформа | Универсальное |
Верхняя часть | ntifs.h (включая Ntifs.h) |
Библиотека | NtosKrnl.lib |
DLL | NtosKrnl.exe |