DELETE_USN_JOURNAL_DATA 结构 (winioctl.h)

包含有关使用 FSCTL_DELETE_USN_JOURNAL 控制代码删除更新序列号 (USN) 变更日志的信息。

语法

typedef struct {
  DWORDLONG UsnJournalID;
  DWORD     DeleteFlags;
} DELETE_USN_JOURNAL_DATA, *PDELETE_USN_JOURNAL_DATA;

成员

UsnJournalID

要删除的更改日志的标识符。

如果日志处于活动状态,并且通过在 DeleteFlags 成员中设置USN_DELETE_FLAG_DELETE标志请求删除,则此标识符必须指定当前卷的更改日志。 使用 FSCTL_QUERY_USN_JOURNAL 检索此更改日志的标识符。 在这种情况下,如果标识符不是当前卷的更改日志, 则FSCTL_DELETE_USN_JOURNAL 失败。

如果在 DeleteFlags 中仅设置USN_DELETE_FLAG_NOTIFY标志来请求通知而不是删除,则忽略 UsnJournalID

DeleteFlags

指示是执行删除或有关删除的通知,还是执行这两者。 DeleteFlags 成员必须包含以下一个或两个值。

含义
USN_DELETE_FLAG_DELETE
0x00000001
如果设置了此标志且未设置USN_DELETE_FLAG_NOTIFY标志, 则FSCTL_DELETE_USN_JOURNAL 操作将启动日志删除过程并立即返回。 如有必要,在系统重启后,日志删除过程会继续。

如果设置了此标志并同时设置了USN_DELETE_FLAG_NOTIFY标志,则会同时删除和通知。 如果设置了此标志并且日志处于活动状态,则必须在 UsnJournalID 中为当前卷提供更改日志的标识符,否则操作将失败。 如果日志未处于活动状态,则忽略 UsnJournalID 并删除该日志。

USN_DELETE_FLAG_NOTIFY
0x00000002
如果设置了此标志,则调用将设置有关删除完成时间的通知。 日记删除过程完成后,将完成日记删除请求。 如果已设置此标志并且未设置USN_DELETE_FLAG_DELETE标志,则调用将设置可能已在进行的删除通知。 例如,应用程序启动时,它可能会使用此标志来确定是否正在进行删除。

如果设置了此标志并同时设置了USN_DELETE_FLAG_DELETE标志,则会同时删除和通知。 通知使用 I/O 完成端口或其他异步事件通知机制执行。

注解

有关详细信息,请参阅创建、修改和删除更改日记

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
标头 winioctl.h (包括 Windows.h)

另请参阅

FSCTL_DELETE_USN_JOURNAL

FSCTL_QUERY_USN_JOURNAL