Функция CcDeferWrite (ntifs.h)

Подпрограмма CcDeferWrite откладывает запись в кэшированный файл. Подпрограмма post, которая предоставляется, вызывается диспетчером кэша, когда она может вместить операцию записи.

Синтаксис

void CcDeferWrite(
  [in] PFILE_OBJECT            FileObject,
  [in] PCC_POST_DEFERRED_WRITE PostRoutine,
  [in] PVOID                   Context1,
  [in] PVOID                   Context2,
  [in] ULONG                   BytesToWrite,
  [in] BOOLEAN                 Retrying
);

Параметры

[in] FileObject

Указатель на объект файла для кэшированного файла, в который записываются данные.

[in] PostRoutine

Адрес подпрограммы, которую диспетчер кэша вызывает для записи в кэшированный файл. Обратите внимание, что возможно, что эта подпрограмма будет вызвана немедленно, даже если CcCanIWrite только что вернул false .

Подпрограмма post определяется в ntifs.h как:

typedef
VOID (*PCC_POST_DEFERRED_WRITE) (
    _In_ PVOID Context1,
    _In_ PVOID Context2
    );

[in] Context1

Первый параметр для подпрограммы post в PostRoutine.

[in] Context2

Второй параметр для подпрограммы post в PostRoutine.

[in] BytesToWrite

Число байтов записываемых данных.

[in] Retrying

Установите значение FALSE , если запрос отправляется в первый раз, в противном случае — ЗНАЧЕНИЕ TRUE .

Возвращаемое значение

None

Remarks

Файловая система обычно вызывает CcDeferWrite после получения возвращаемого значения FALSE от CcCanIWrite.

Чтобы кэшировать файл, используйте CcInitializeCacheMap.

Параметры контекста, передаваемые в PostRoutine , обычно являются запросом ввода-вывода и связанными данными контекста.

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть ntifs.h (включая Ntifs.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe

См. также раздел

CcCanIWrite

CcInitializeCacheMap

CcSetDirtyPageThreshold