Поделиться через


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

Подпрограмма CcFastCopyWrite выполняет быструю запись копирования из буфера в память в кэшированный файл.

Синтаксис

void CcFastCopyWrite(
  [in] PFILE_OBJECT FileObject,
  [in] ULONG        FileOffset,
  [in] ULONG        Length,
  [in] PVOID        Buffer
);

Параметры

[in] FileObject

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

[in] FileOffset

Указатель на переменную, указывающую начальное смещение байтов в кэшированном файле.

[in] Length

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

[in] Buffer

Указатель на буфер, из которого копируются данные.

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

Никакой

Замечания

CcFastCopyWrite — это более быстрая версия CcCopyWrite. Он отличается от CcCopyWrite в следующих отношениях:

  • FileOffset — это ULONG, а не PLARGE_INTEGER.

  • Параметр ожидания отсутствует. Вызывающий объект должен иметь возможность ввести состояние ожидания до тех пор, пока все данные не будут скопированы.

  • CcFastCopyWrite не возвращает boOLEAN, чтобы указать, была ли операция записи успешной.

Если требуемые страницы кэшированного файла уже находятся в памяти, данные копируются немедленно и не блокируются. Если все необходимые страницы не являются резидентами, вызывающий объект помещается в состояние ожидания до тех пор, пока все необходимые страницы не были сделаны резидентами и данные можно скопировать.

Если возникает сбой, CcFastCopyWrite вызывает исключение состояния для конкретного сбоя. Например, если возникает сбой выделения пула, CcFastCopyWrite вызывает исключение STATUS_INSUFFICIENT_RESOURCES; Если возникает ошибка ввода-вывода, CcFastCopyWrite вызывает исключение состояния ошибки ввода-вывода. Таким образом, чтобы получить контроль при возникновении сбоя, драйвер должен упаковать вызов CcFastCopyWrite в , за исключением или инструкции try-finally.

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

Требования

Требование Ценность
целевая платформа Всеобщий
заголовка ntifs.h (include Ntifs.h)
библиотеки NtosKrnl.lib
DLL NtosKrnl.exe

См. также

CcCopyWrite

CcInitializeCacheMap