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具有低内存消耗、高并发能力和卓越的性能,能够处理大量并发连接和高流量的网络流量。…...
HFSS建模进阶:如何高效使用布尔运算和局部坐标系(实战案例解析)
HFSS建模进阶:布尔运算与局部坐标系的高效实战指南 在微波器件和天线设计的数字世界里,精确的三维建模往往是成功仿真的第一步。当您已经掌握了HFSS的基础建模操作后,如何将建模效率提升到专业水平?本文将带您深入探索两个常被忽视…...
Python 3.15 JIT为何在Docker中静默禁用?揭开musl libc与libffi-3.4.6 ABI不兼容的致命链
第一章:Python 3.15 JIT 的设计目标与 Docker 场景适配性Python 3.15 引入的实验性 JIT(Just-In-Time)编译器并非追求通用性能提升,而是聚焦于特定高价值场景——尤其是容器化微服务中反复执行的 CPU 密集型工作负载。其核心设计目…...
探索Tabler Icons 3.40.0:新增6000+高质量SVG图标的终极指南
探索Tabler Icons 3.40.0:新增6000高质量SVG图标的终极指南 【免费下载链接】tabler-icons A set of over 4800 free MIT-licensed high-quality SVG icons for you to use in your web projects. 项目地址: https://gitcode.com/GitHub_Trending/ta/tabler-icons…...
EDK II代码质量门禁报告:全面解析门禁检查结果与最佳实践
EDK II代码质量门禁报告:全面解析门禁检查结果与最佳实践 【免费下载链接】edk2 EDK II 项目地址: https://gitcode.com/gh_mirrors/ed/edk2 EDK II作为现代、功能丰富的跨平台UEFI和PI规范固件开发环境,其代码质量门禁系统是确保固件可靠性和安全…...
终极指南:如何使用Cat-Catch浏览器资源嗅探工具轻松捕获网络媒体资源
终极指南:如何使用Cat-Catch浏览器资源嗅探工具轻松捕获网络媒体资源 【免费下载链接】cat-catch 猫抓 chrome资源嗅探扩展 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch Cat-Catch(猫抓)是一款强大的浏览器资源嗅探扩…...
SecGPT-14B部署教程:模型热更新机制设计,不中断服务切换安全知识版本
SecGPT-14B部署教程:模型热更新机制设计,不中断服务切换安全知识版本 1. SecGPT-14B简介 SecGPT是由云起无垠推出的开源大语言模型,专门针对网络安全领域设计。这个模型融合了自然语言理解、代码生成和安全知识推理等核心能力,能…...
OpenClaw性能优化:降低GLM-4.7-Flash任务Token消耗的5个技巧
OpenClaw性能优化:降低GLM-4.7-Flash任务Token消耗的5个技巧 1. 为什么需要关注Token消耗 当我第一次在本地部署OpenClaw并接入GLM-4.7-Flash模型时,最让我震惊的不是它的自动化能力,而是执行简单任务后查看账单时的Token消耗数字。一个看似…...
Simulink与Plecs联合仿真实现三相桥式电路能量双向流动
simulinkplecs联合仿真源件,三相桥式电路,采用母线电压外环与电流内环控制,可整流也可逆变并网,实现能量双向流动,采用SVPWM调制方式。 1.plecssimulink 2.SVPWM 3.双闭环 支持simulink2022以下版本,联系跟…...
GIS小白必看!Global Mapper处理正射影像的5个高频问题解答(含奥维地图导入避坑指南)
GIS新手实战指南:Global Mapper正射影像处理全解析 第一次打开Global Mapper时,那些密密麻麻的工具栏和复杂的参数设置确实让人望而生畏。去年我刚接触GIS时,处理无人机航拍的正射影像就踩了不少坑——坐标系选错导致影像偏移几百米、导出分幅…...
实战指南:用快马为django项目生成定制化vmware开发环境,开箱即用
实战指南:用快马为Django项目生成定制化VMware开发环境,开箱即用 在实际开发场景中,虚拟机环境需要与具体项目需求紧密结合。最近我在做一个Django项目时,发现每次换电脑或重装系统都要重新配置开发环境,特别浪费时间…...
