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

指向要从中复制数据的缓冲区的指针。

返回值

备注

CcFastCopyWriteCcCopyWrite 的更快版本。 它与 CcCopyWrite 在以下方面不同:

  • FileOffset 是 ULONG,而不是PLARGE_INTEGER。

  • 没有 Wait 参数。 调用方必须能够进入等待状态,直到复制所有数据。

  • CcFastCopyWrite 不返回 BOOLEAN 来指示写入操作是否成功。

如果缓存文件的所需页已驻留在内存中,则会立即复制数据,并且不会发生阻塞。 如果任何所需的页未驻留,调用方将处于等待状态,直到所有必需的页面都已驻留,并且可以复制数据。

如果发生任何故障, CcFastCopyWrite 将针对该特定失败引发状态异常。 例如,如果发生池分配失败, CcFastCopyWrite 将引发STATUS_INSUFFICIENT_RESOURCES异常;如果发生 I/O 错误, CcFastCopyWrite 将引发 I/O 错误的状态异常。 因此,若要在发生故障时获得控制,驱动程序应在 try-excepttry-finally 语句中包装对 CcFastCopyWrite 的调用。

若要缓存文件,请使用 CcInitializeCacheMap

要求

要求
目标平台 通用
标头 ntifs.h (包括 Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe

另请参阅

CcCopyWrite

CcInitializeCacheMap