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。
没有 Wait 参数。 调用方必须能够进入等待状态,直到复制所有数据。
CcFastCopyWrite 不返回 BOOLEAN 以指示写入操作是否成功。
如果缓存文件所需的页已驻留在内存中,则会立即复制数据,并且不会发生阻塞。 如果任何所需页面不驻留,则调用方将处于等待状态,直到所有必需的页面都成为常驻页面,并且可以复制数据。
如果发生任何故障,CcFastCopyWrite 将引发该特定故障的状态异常。 例如,如果发生池分配失败,CcFastCopyWrite 引发STATUS_INSUFFICIENT_RESOURCES异常;如果发生 I/O 错误,CcFastCopyWrite 将引发 I/O 错误的状态异常。 因此,若要控制是否发生故障,驱动程序应在 try-except 或 try-finally 语句中包装对 CcFastCopyWrite 的调用。
若要缓存文件,请使用 CcInitializeCacheMap。
要求
要求 | 价值 |
---|---|
目标平台 | 普遍 |
标头 | ntifs.h (include Ntifs.h) |
库 | NtosKrnl.lib |
DLL | NtosKrnl.exe |