0%

Windows捕获Crash

打开regedit.exe在注册表中找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting
项,新建3个“字符串值”:配置DumpCount = 10DumpFolder = C:\XUranusDumpDumpType = 2如图所示:

其中DumpType代表的含义是:

  • 0 :Create a Custom Dump
  • 1 :Mini Dump
  • 2 :Full Dump

这里配置将会在程序崩溃时在C:\XUranusDump目录下生成完整的Dump信息,最多生成10个。生成的Dump信息以*.dmp文件形式存在:

阅读全文 »

Windows Server 2008以上的版本,管理员可以通过卷影副本服务(Volume Shadow Service)在指定的卷上创建备份的卷影副本。卷影副本类似于快照(Snapshot),用户可以基于快照卷恢复到之前某个时间的版本,备份软件也可基于快照做一致性备份。因此,它可以极大保护服务器的数据安全。

本文就介绍VSS相关操作以及如何用C++调用相关API。

项目完整地址见https://github.com/XUranus/Win32VSSWrapper
下文所说的卷影副本快照属于一个概念

阅读全文 »

本文将介绍Windows文件系统中安全描述符(Security Descriptor)ADS流(Alternate Data Stream)

SecurityDescriptor

Alternative Data Stream

上一篇文件我们主要介绍了Windows文件系统的基本特性及文档阅读方式,本文将介绍Windows文件系统中一种特殊的概念:指向点(Reparse Point)

回顾上一章节,我们在文件dwFileAttributes依据符号位FILE_ATTRIBUTE_REPARSE_POINT实现了一个方法:

bool StatResult::IsReparsePoint() const {
return (m_handleFileInformation.dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT) != 0;
}

我们还没有说明这个方法的意义,该方法说明该文件是一个指向点(Reparse Point)。Reparse Point是一种特殊机制,用于实现Windows文件系统的重定向。Windows的挂载和软连接就是基于它实现的。在详解FILE_ATTRIBUTE_REPARSE_POINT之前,我们先从Windows软链接开始看起。

阅读全文 »

最近接触Windows文件备份相关的业务,从Win32 API入手对Windows文件系统的基本概念做一个总结。学习Windows文件系统最好方式还是阅读官方文档,本文只是对相关概念进行粗浅的介绍,权当抛砖引玉。
本文完整代码见:https://github.com/XUranus/FileSystemUtil

Win32 API Doc

官方文档。文档会详细描述每一个API的入参、出参、返回的字段含义和取值范围,部分还会给出Example程序。

Windows程序开发一般使用MSVC,和GCC有不少区别。为了更有效率的学习Windows文件系统,在介绍文件系统之前,本文先给Linux转Windows的开发者介绍一下Windows的编码和文档阅读方式,磨刀不误砍柴工。

阅读全文 »