Windows中API-磁盘管理笔记
- 硬盘是由一组堆积的盘片组成类似于圆柱体组成,每个盘片的数据都以电磁方式存储在同心圆或轨道中,轨道的最小可寻址单元是扇区;
- 基本磁盘:最常用于windows的存储类型,指的是**包含分区的磁盘。**在基本磁盘上只能创建和删除主分区和扩展分区,在扩展分区中创建和删除逻辑驱动器,格式化分区并将其标记为活动分区。
- 当用户将硬盘格式化为基本磁盘时,将创建分区。在磁盘上创建多个分区允许具有单独的硬盘驱动器。
- 基本磁盘上的第一个物理扇区包含称为主启动记录 (MBR) 的数据结构。 MBR 包含以下内容:
启动程序 (最大大小为 442 字节)
磁盘签名 (唯一的 4 字节数字)
一个分区表最多 (四个条目)
MBR 结束标记 (始终0x55AA) - 主启动记录:所有运行Windows的基于X86的计算机和基于X86的计算机都可以使用成为主启动记录的分区样式(MBR)。MBR是Windows Server 2003 之前基于X86且Service Pack 1(SP1)的计算机上唯一可用的分区样式,因此无需选择此样式,它会自动使用。
- 可以使用 MBR 分区方案在基本磁盘上创建最多四个分区:四个主分区,或三个主分区和一个扩展分区。 扩展分区可以包含一个或多个逻辑驱动器。
- 全局唯一标识符的分区样式(GUID)分区表(GPT),使用GPT分区样式的基本磁盘最多可有128个主分区,可允许大于2TB的分区,增加复制和循环冗余的可靠性,检查(CRC、)分区表的保护,支持多种分区类型GUID。
- 管理磁盘配额:NTFS文件系统支持磁盘配额,允许管理员控制每个用户可以在NTFS文件系统卷上存储的数据量。可通过调用GetVolumeInformation函数并检查FILE_VOLUME_QUOTAS位标志确定文件系统是否支持磁盘配额。
- 需要检索实际可用磁盘空间量的程序可以调用 GetDiskFreeSpaceEx 函数并查看 TotalNumberOfFreeBytes 参数。
- 磁盘配额接口
接口 说明
IDiskQuotaControl 控制单个 NTFS 文件系统卷的磁盘配额设施。
IDiskQuotaEvents 接收与配额相关的事件通知。
IDiskQuotaUser 表示卷配额信息文件中的单个用户配额条目。
IDiskQuotaUserBatch 将多个配额用户对象添加到容器中,然后在单个调用中提交更新。
IEnumDiskQuotaUsers 枚举卷上的用户配额条目。 - 磁盘管理控制代码以及枚举类型较多,不做记录,需要时到:https://learn.microsoft.com/zh-cn/windows/win32/fileio/disk-management-functions
- 函数 说明
GetDiskFreeSpace
检索有关指定磁盘的信息,包括磁盘上的可用空间量。
GetDiskFreeSpaceEx
检索有关磁盘卷上可用空间量的信息,即空间总量、可用空间总量以及与调用线程关联的用户可用空间总量。 - IDiskQuotaControl::AddUserName
在卷上为指定用户添加新的配额条目。 用户由域和帐户名称标识。
IDiskQuotaControl::AddUserSid
在卷上为指定用户添加新的配额条目。 用户由安全标识符 (SID) 标识。
IDiskQuotaControl::CreateEnumUsers
创建枚举器对象,用于枚举卷上的配额用户。
IDiskQuotaControl::CreateUserBatch
创建批处理对象,用于同时优化对多个用户的配额设置的更新。
IDiskQuotaControl::DeleteUser
从卷配额信息文件中删除用户条目。
IDiskQuotaControl::FindUserName
在卷配额信息中找到特定条目。
IDiskQuotaControl::FindUserSid
在卷配额信息中找到特定的用户条目。
IDiskQuotaControl::GetDefaultQuotaLimit
检索卷的默认配额限制。
IDiskQuotaControl::GetDefaultQuotaLimitText
检索卷的默认配额限制。 限制表示为文本字符串;例如,10.5 MB。
IDiskQuotaControl::GetDefaultQuotaThreshold
检索卷的默认配额警告阈值。
IDiskQuotaControl::GetDefaultQuotaThresholdText
检索卷的默认警告阈值。
IDiskQuotaControl::GetQuotaLogFlags
检索控制卷上用户相关配额事件的日志记录的标志。
IDiskQuotaControl::GetQuotaState
检索一组描述配额系统状态的标志。
IDiskQuotaControl::GiveUserNameResolutionPriority
将指定的用户对象提升到队列的头,以便它排在下一行进行解析。
IDiskQuotaControl::Initialize
通过使用请求的访问权限打开 NTFS 文件系统卷来初始化新的 DiskQuotaControl 对象。
IDiskQuotaControl::InvalidateSidNameCache
使系统的 SID 到名称缓存的内容失效,因此对新用户对象的后续请求 (IEnumDiskQuotaUsers::Next、IDiskQuotaControl::FindUserSid 和 IDiskQuotaControl::FindUserName) 必须从域控制器获取用户名。
IDiskQuotaControl::SetDefaultQuotaLimit
修改默认配额限制。
IDiskQuotaControl::SetDefaultQuotaThreshold
修改默认警告阈值。
IDiskQuotaControl::SetQuotaLogFlags
控制卷上与用户相关的配额事件的日志记录。
IDiskQuotaControl::SetQuotaState
设置配额系统的状态。
IDiskQuotaControl::ShutdownNameResolution
将用户安全标识符 (SID) 转换为用户名。
- 客户端必须将 IDiskQuotaEvents 接口实现为接收配额相关事件通知的事件接收器。 每当发生重大配额事件时,系统将调用其方法。 目前支持的唯一事件是用户帐户名称信息的异步解析。IDiskQuotaEvents 接口继承自 IUnknown 接口
- IDiskQuotaEvents::OnUserNameChanged
每当异步解析用户的 SID 时**,通知客户端的连接接收器。**
16.HRESULT OnUserNameChanged(
[in] PDISKQUOTA_USER pUser //指向配额用户对象的 IDiskQuotaUser 接口的指针
);
IDiskQuotaUser::GetAccountStatus
检索用户对象帐户的状态。
IDiskQuotaUser::GetID
检索 DiskQuotaUser 对象的唯一标识符 (ID) 编号。
IDiskQuotaUser::GetName
检索与磁盘配额用户关联的名称字符串。
IDiskQuotaUser::GetQuotaInformation
检索用户的警告阈值、硬配额限制和使用的配额的值。
IDiskQuotaUser::GetQuotaLimit
检索用户在卷上的配额限制值。
IDiskQuotaUser::GetQuotaLimitText
检索用户对卷的配额限制。
IDiskQuotaUser::GetQuotaThreshold
检索用户在卷上的警告阈值。
IDiskQuotaUser::GetQuotaThresholdText
检索用户针对卷的警告阈值。
IDiskQuotaUser::GetQuotaUsed
检索用户在卷上使用的配额值。
IDiskQuotaUser::GetQuotaUsedText
检索卷的用户已用配额值。
IDiskQuotaUser::GetSid
检索 SID) (用户的安全标识符。
(IDiskQuotaUser.GetSid)
IDiskQuotaUser::GetSidLength
检索 SID) (用户安全标识符的长度(以字节为单位)。
IDiskQuotaUser::Invalidate
使存储在配额用户对象中的配额信息无效。
IDiskQuotaUser::SetQuotaLimit
设置用户对卷的配额限制值。
IDiskQuotaUser::SetQuotaThreshold
设置用户对卷的警告阈值。
- IDiskQuotaUserBatch::Add
将 IDiskQuotaUser 指针添加到批列表。
IDiskQuotaUserBatch::FlushToDisk
在对基础文件系统的单个调用中,将用户对象更改写入磁盘。
IDiskQuotaUserBatch::Remove
从批列表中删除 IDiskQuotaUser 指针。
IDiskQuotaUserBatch::RemoveAll
从批列表中删除所有 IDiskQuotaUser 指针。
太多了:使用到再查吧
https://learn.microsoft.com/zh-cn/windows/win32/fileio/working-with-nvme-devices
相关文章:
Windows中API-磁盘管理笔记
硬盘是由一组堆积的盘片组成类似于圆柱体组成,每个盘片的数据都以电磁方式存储在同心圆或轨道中,轨道的最小可寻址单元是扇区;基本磁盘:最常用于windows的存储类型,指的是**包含分区的磁盘。**在基本磁盘上只能创建和删…...
010 操作符详解 上
写代码的实质是在写方法体 —— 刘铁猛 操作符概览 操作符本质 操作符的本质是函数的“简记法” 操作符 简写Add函数 34 等同Add(3,4)操作符不能脱离与它关联的数据类型可以说操作符就是与固定数据类型关联的一套算法的简记法 如下图所示算法的简记法 操作符的优先级 可以使…...
【贪心算法】(第十篇)
目录 加油站(medium) 题目解析 讲解算法原理 编写代码 单调递增的数字(medium) 题目解析 讲解算法原理 编写代码 加油站(medium) 题目解析 1.题目链接:. - 力扣(LeetCode&a…...
029.爬虫专用浏览器-抓取跨域#document下的内容
一、iframe下的#document是什么 #document 是一个特殊的 HTML 元素,表示 <iframe> 元素内部的文档对象。当你在 HTML 页面中嵌入一个 <iframe> 元素时,浏览器会创建一个新的文档对象来表示 <iframe> 内部的内容。这 个文档对象就是 #…...
SIP 业务举例之 Call Hold(呼叫保持)
目录 1. Call Hold(呼叫保持)简介 2. 信令流程 呼叫保持 呼叫恢复开始 恢复通话完成 3. 本例 Call Hold 建立了几个 Dialog? 博主wx:yuanlai45_csdn 博主qq:2777137742 想要 深入学习 5GC IMS 等通信知识(加入 51学通信),或者想要 cpp 方向修改简历,模拟面试,学习…...
eks节点的网络策略配置机制解析
参考链接 vpc-cni网络策略最佳实践,https://aws.github.io/aws-eks-best-practices/security/docs/network/#additional-resourcesvpc cni网络策略faq,https://github.com/aws/amazon-vpc-cni-k8s/blob/0703d03dec8afb8f83a7ff0c9d5eb5cc3363026e/docs/…...
【C】用c写贪吃蛇
1.输入正确的账号密码及其用户名,登录成功进入贪吃蛇游戏界面, 2.随机生成蛇头★、食物▲的位置(x,y),并使用□打印地图 3.使用w s a d按键,完成蛇头的上下左右移动 4.蛇头碰撞到食物后,吃下食物变成蛇身的一部分●…...
qt QLineEdit详解
一、概述 QLineEdit 是 Qt 框架中用于创建单行文本输入框的类。它非常适合用于接收用户输入,例如用户名、密码或其他简单的文本信息。它提供了许多有用的编辑功能,支持多种输入模式和文本限制,并支持撤销、重做、剪切、粘贴以及拖放等功能。…...
DevEco Studio的使用 习题答案<HarmonyOS第一课>
一、判断题 1. 如果代码中涉及到一些网络、数据库、传感器等功能的开发,均可使用预览器进行预览。 正确(True)错误(False) 错误(False)回答正确 2. module.json5文件中的deviceTypes字段中,配置了phone,tablet,2in1等多种设备类型,才能进行多设备预览。 正确(True)…...
鸿蒙网络编程系列36-固定包头可变包体解决TCP粘包问题
1. TCP数据传输粘包简介 在本系列的第6篇文章《鸿蒙网络编程系列6-TCP数据粘包表现及原因分析》中,我们演示了TCP数据粘包的表现,如图所示: 随后解释了粘包背后的可能原因,并给出了解决TCP传输粘包问题的两种思路,第一…...
【华为路由】OSPF多区域配置
网络拓扑 设备接口地址 设备 端口 IP地址 RTA Loopback 0 1.1.1.1/32 G0/0/0 10.1.1.1/24 RTB Loopback 0 2.2.2.2/32 G0/0/0 10.1.1.2/24 G0/0/1 10.1.2.1/24 RTC Loopback 0 3.3.3.3/32 G0/0/0 10.1.2.2/24 G0/0/1 10.1.3.1/24 RTD Loopback 0 4.4.4…...
【C++初阶】一文讲通C++内存管理
文章目录 1. C/C内存分布2. C语言中动态内存管理方式3. C内存管理方式3. 1 new/delete操作内置类型3. 2 new和delete操作自定义类型 4. new与delete的原理4. 1 operator new与operator delete函数4. 2 内置类型4. 3 自定义类型 5. 定位new表达式(placement-new)6. malloc/free和…...
Vue学习笔记(九、简易计算器)
在这个案例中,我们使用v-model分别双向绑定了n1、n2操作数,op操作选项和result计算结果,同时用绑定了等号按钮事件。 由于是双向绑定,当input和select通过外部输入内容时,vm内部的数值也会改变,所以calcula…...
Maven 不同环境灵活构建
需求: 使用 Maven根据不同的构建环境(如开发、测试、生产)来定义不同的配置,实现灵活的构建管理。 需要Demo项目的可以参考:我的demo项目 一、项目分层 一般的初创项目不会有特别多的配置文件,所以使用 spring.profile…...
第三十篇:TCP连接断开过程,从底层说明白,TCP系列五
上一篇《第二十九篇:图解TCP三次握手,看过不会忘,从底层说清楚,TCP系列四》说了TCP的三次握手,接下来我将讲解TCP四次挥手。 既然有连接就有断开,谈到这里,有的同学可能会想,不就是…...
代码随想录算法训练营第七天| 哈希表理论基础 454.四数相加II 383.赎金信 15.三数之和 18.四数之和
454. 四数相加 II 题目 给定四个包含整数的数组 A, B, C, D,计算有多少个元组 (i, j, k, l) 使得 A[i] B[j] C[k] D[l] 0。 解题思路 先计算数组 A 和 B 的所有组合和,并存入哈希表 map 中,键为组合和,值为该和出现的次数…...
搜维尔科技:Manus新品发布Metagloves Pro专业版,专为高精度需求的客户打造,尤其是人形机器人产业与人机工效研究使用
manus新品发布Metagloves Pro专业版,专为高精度需求的客户打造,尤其是人形机器人产业与人机工效研究使用 搜维尔科技:manus新品发布Metagloves Pro专业版,专为高精度需求的客户打造,尤其是人形机器人产业与人机工效研究…...
Spring Boot实现的动态化酒店住宿管理系统
1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及,互联网成为人们查找信息的重要场所,二十一世纪是信息的时代,所以信息的管理显得特别重要。因此,使用计算机来管理酒店客房管理系统的相关信息成为必然。开发…...
数字IC后端实现Innovus |给各种IP子模块添加port buffer和antenna diode万能脚本
我们之前分享过在hierarchical flow后端实现中为了确保顶层flatten时timing signoff和physical signoff看到的情况和模块级看到的情况一致,我们会在模块io port添加io port buffer(主要是timing,antenna一致性)。实际上在芯片级我…...
反向代理服务器---NGINX
1.NGINX NGINX(发音为“engine-x”)是一个开源的高性能HTTP服务器和反向代理服务器。它被广泛用于互联网应用程序的加速、负载均衡和高可用性的配置。NGINX具有低内存消耗、高并发能力和卓越的性能,能够处理大量并发连接和高流量的网络流量。…...
JavaSec-RCE
简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性,…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...
如何在看板中有效管理突发紧急任务
在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...
SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)
上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...
JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...
QT3D学习笔记——圆台、圆锥
类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体(对象或容器)QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质(定义颜色、反光等)QFirstPersonC…...
