Функция 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 |