FsRtlLogCcFlushError 函数 (ntifs.h)
FsRtlLogCcFlushError 例程记录丢失的延迟写入错误,并向用户显示一个对话框。
语法
NTSTATUS FsRtlLogCcFlushError(
[in] PUNICODE_STRING FileName,
[in] PDEVICE_OBJECT DeviceObject,
[in] PSECTION_OBJECT_POINTERS SectionObjectPointer,
[in] NTSTATUS FlushError,
[in] ULONG Flags
);
参数
[in] FileName
无法刷新的文件的名称。
[in] DeviceObject
指向应对其提交此日志条目的设备对象的指针。
[in] SectionObjectPointer
指向刷新失败的文件的 section 对象的指针。
[in] FlushError
调用 CcFlushCache 返回的错误。
[in] Flags
值为 0 或以下一个或多个标志的按位组合:
标志 | 含义 |
---|---|
FSRTL_CC_FLUSH_ERROR_FLAG_NO_HARD_ERROR | 禁止向用户显示信息性对话框。 |
FSRTL_CC_FLUSH_ERROR_FLAG_NO_LOG_ENTRY | 禁止生成系统错误日志条目。 |
返回值
FsRtlLogCcFlushError 例程在成功或其他 NTSTATUS 值(如STATUS_INSUFFICIENT_RESOURCES)时返回STATUS_SUCCESS。
注解
除非调用包含相应的 Flag,否则 FsRtlLogCcFlushError 例程使用 IoRaiseInformationalHardError 向用户显示对话框(包括特定错误和 FileName),并使用 IoWriteErrorLogEntry 记录错误。
如果整个 FileName 无法容纳在日志缓冲区中,则例程会将省略号插入文件名中。
如果缓存中仍有已修改的页面,则错误不是致命错误。 例程返回给调用方,而不记录错误或显示对话框。
如果错误严重,则例程会将处理器控制块中丢失的延迟写入计数器递增 (PRCB) 。 此计数器可用于排查丢失延迟写入错误。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista |
目标平台 | 通用 |
标头 | ntifs.h (包括 FltKernel.h、Ntifs.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |