当前位置: 首页 > news >正文

Windows中API-磁盘管理笔记

  1. 硬盘是由一组堆积的盘片组成类似于圆柱体组成,每个盘片的数据都以电磁方式存储在同心圆或轨道中,轨道的最小可寻址单元是扇区;
  2. 基本磁盘:最常用于windows的存储类型,指的是**包含分区的磁盘。**在基本磁盘上只能创建和删除主分区和扩展分区,在扩展分区中创建和删除逻辑驱动器,格式化分区并将其标记为活动分区。
  3. 当用户将硬盘格式化为基本磁盘时,将创建分区。在磁盘上创建多个分区允许具有单独的硬盘驱动器。
  4. 基本磁盘上的第一个物理扇区包含称为主启动记录 (MBR) 的数据结构。 MBR 包含以下内容:
    启动程序 (最大大小为 442 字节)
    磁盘签名 (唯一的 4 字节数字)
    一个分区表最多 (四个条目)
    MBR 结束标记 (始终0x55AA)
  5. 主启动记录:所有运行Windows的基于X86的计算机和基于X86的计算机都可以使用成为主启动记录的分区样式(MBR)。MBR是Windows Server 2003 之前基于X86且Service Pack 1(SP1)的计算机上唯一可用的分区样式,因此无需选择此样式,它会自动使用。
  6. 可以使用 MBR 分区方案在基本磁盘上创建最多四个分区:四个主分区,或三个主分区和一个扩展分区。 扩展分区可以包含一个或多个逻辑驱动器。
  7. 全局唯一标识符的分区样式(GUID)分区表(GPT),使用GPT分区样式的基本磁盘最多可有128个主分区,可允许大于2TB的分区,增加复制和循环冗余的可靠性,检查(CRC、)分区表的保护,支持多种分区类型GUID。
  8. 管理磁盘配额:NTFS文件系统支持磁盘配额,允许管理员控制每个用户可以在NTFS文件系统卷上存储的数据量。可通过调用GetVolumeInformation函数并检查FILE_VOLUME_QUOTAS位标志确定文件系统是否支持磁盘配额。
  9. 需要检索实际可用磁盘空间量的程序可以调用 GetDiskFreeSpaceEx 函数并查看 TotalNumberOfFreeBytes 参数。
  10. 磁盘配额接口
    接口 说明
    IDiskQuotaControl 控制单个 NTFS 文件系统卷的磁盘配额设施。
    IDiskQuotaEvents 接收与配额相关的事件通知。
    IDiskQuotaUser 表示卷配额信息文件中的单个用户配额条目。
    IDiskQuotaUserBatch 将多个配额用户对象添加到容器中,然后在单个调用中提交更新。
    IEnumDiskQuotaUsers 枚举卷上的用户配额条目。
  11. 磁盘管理控制代码以及枚举类型较多,不做记录,需要时到:https://learn.microsoft.com/zh-cn/windows/win32/fileio/disk-management-functions
  12. 函数 说明
    GetDiskFreeSpace
    检索有关指定磁盘的信息,包括磁盘上的可用空间量。
    GetDiskFreeSpaceEx
    检索有关磁盘卷上可用空间量的信息,即空间总量、可用空间总量以及与调用线程关联的用户可用空间总量。
  13. 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) 转换为用户名。

  1. 客户端必须将 IDiskQuotaEvents 接口实现为接收配额相关事件通知的事件接收器。 每当发生重大配额事件时,系统将调用其方法。 目前支持的唯一事件是用户帐户名称信息的异步解析。IDiskQuotaEvents 接口继承自 IUnknown 接口
  2. 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
设置用户对卷的警告阈值。

  1. 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 元素&#xff0c;表示 <iframe> 元素内部的文档对象。当你在 HTML 页面中嵌入一个 <iframe> 元素时&#xff0c;浏览器会创建一个新的文档对象来表示 <iframe> 内部的内容。这 个文档对象就是 #…...

SIP 业务举例之 Call Hold(呼叫保持)

目录 1. Call Hold(呼叫保持)简介 2. 信令流程 呼叫保持 呼叫恢复开始 恢复通话完成 3. 本例 Call Hold 建立了几个 Dialog? 博主wx:yuanlai45_csdn 博主qq:2777137742 想要 深入学习 5GC IMS 等通信知识(加入 51学通信),或者想要 cpp 方向修改简历,模拟面试,学习…...

eks节点的网络策略配置机制解析

参考链接 vpc-cni网络策略最佳实践&#xff0c;https://aws.github.io/aws-eks-best-practices/security/docs/network/#additional-resourcesvpc cni网络策略faq&#xff0c;https://github.com/aws/amazon-vpc-cni-k8s/blob/0703d03dec8afb8f83a7ff0c9d5eb5cc3363026e/docs/…...

【C】用c写贪吃蛇

1.输入正确的账号密码及其用户名&#xff0c;登录成功进入贪吃蛇游戏界面&#xff0c; 2.随机生成蛇头★、食物▲的位置(x,y)&#xff0c;并使用□打印地图 3.使用w s a d按键&#xff0c;完成蛇头的上下左右移动 4.蛇头碰撞到食物后&#xff0c;吃下食物变成蛇身的一部分●…...

qt QLineEdit详解

一、概述 QLineEdit 是 Qt 框架中用于创建单行文本输入框的类。它非常适合用于接收用户输入&#xff0c;例如用户名、密码或其他简单的文本信息。它提供了许多有用的编辑功能&#xff0c;支持多种输入模式和文本限制&#xff0c;并支持撤销、重做、剪切、粘贴以及拖放等功能。…...

DevEco Studio的使用 习题答案<HarmonyOS第一课>

一、判断题 1. 如果代码中涉及到一些网络、数据库、传感器等功能的开发,均可使用预览器进行预览。 正确(True)错误(False) 错误(False)回答正确 2. module.json5文件中的deviceTypes字段中,配置了phone,tablet,2in1等多种设备类型,才能进行多设备预览。 正确(True)…...

鸿蒙网络编程系列36-固定包头可变包体解决TCP粘包问题

1. TCP数据传输粘包简介 在本系列的第6篇文章《鸿蒙网络编程系列6-TCP数据粘包表现及原因分析》中&#xff0c;我们演示了TCP数据粘包的表现&#xff0c;如图所示&#xff1a; 随后解释了粘包背后的可能原因&#xff0c;并给出了解决TCP传输粘包问题的两种思路&#xff0c;第一…...

【华为路由】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学习笔记(九、简易计算器)

在这个案例中&#xff0c;我们使用v-model分别双向绑定了n1、n2操作数&#xff0c;op操作选项和result计算结果&#xff0c;同时用绑定了等号按钮事件。 由于是双向绑定&#xff0c;当input和select通过外部输入内容时&#xff0c;vm内部的数值也会改变&#xff0c;所以calcula…...

Maven 不同环境灵活构建

需求: 使用 Maven根据不同的构建环境&#xff08;如开发、测试、生产&#xff09;来定义不同的配置&#xff0c;实现灵活的构建管理。 需要Demo项目的可以参考&#xff1a;我的demo项目 一、项目分层 一般的初创项目不会有特别多的配置文件&#xff0c;所以使用 spring.profile…...

第三十篇:TCP连接断开过程,从底层说明白,TCP系列五

上一篇《第二十九篇&#xff1a;图解TCP三次握手&#xff0c;看过不会忘&#xff0c;从底层说清楚&#xff0c;TCP系列四》说了TCP的三次握手&#xff0c;接下来我将讲解TCP四次挥手。 既然有连接就有断开&#xff0c;谈到这里&#xff0c;有的同学可能会想&#xff0c;不就是…...

代码随想录算法训练营第七天| 哈希表理论基础 454.四数相加II 383.赎金信 15.三数之和 18.四数之和

454. 四数相加 II 题目 给定四个包含整数的数组 A, B, C, D&#xff0c;计算有多少个元组 (i, j, k, l) 使得 A[i] B[j] C[k] D[l] 0。 解题思路 先计算数组 A 和 B 的所有组合和&#xff0c;并存入哈希表 map 中&#xff0c;键为组合和&#xff0c;值为该和出现的次数…...

搜维尔科技:Manus新品发布Metagloves Pro专业版,专为高精度需求的客户打造,尤其是人形机器人产业与人机工效研究使用

manus新品发布Metagloves Pro专业版&#xff0c;专为高精度需求的客户打造&#xff0c;尤其是人形机器人产业与人机工效研究使用 搜维尔科技&#xff1a;manus新品发布Metagloves Pro专业版&#xff0c;专为高精度需求的客户打造&#xff0c;尤其是人形机器人产业与人机工效研究…...

Spring Boot实现的动态化酒店住宿管理系统

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及&#xff0c;互联网成为人们查找信息的重要场所&#xff0c;二十一世纪是信息的时代&#xff0c;所以信息的管理显得特别重要。因此&#xff0c;使用计算机来管理酒店客房管理系统的相关信息成为必然。开发…...

数字IC后端实现Innovus |给各种IP子模块添加port buffer和antenna diode万能脚本

我们之前分享过在hierarchical flow后端实现中为了确保顶层flatten时timing signoff和physical signoff看到的情况和模块级看到的情况一致&#xff0c;我们会在模块io port添加io port buffer&#xff08;主要是timing&#xff0c;antenna一致性&#xff09;。实际上在芯片级我…...

反向代理服务器---NGINX

1.NGINX NGINX&#xff08;发音为“engine-x”&#xff09;是一个开源的高性能HTTP服务器和反向代理服务器。它被广泛用于互联网应用程序的加速、负载均衡和高可用性的配置。NGINX具有低内存消耗、高并发能力和卓越的性能&#xff0c;能够处理大量并发连接和高流量的网络流量。…...

CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型

CVPR 2025 | MIMO&#xff1a;支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题&#xff1a;MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者&#xff1a;Yanyuan Chen, Dexuan Xu, Yu Hu…...

简易版抽奖活动的设计技术方案

1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...

K8S认证|CKS题库+答案| 11. AppArmor

目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作&#xff1a; 1&#xff09;、切换集群 2&#xff09;、切换节点 3&#xff09;、切换到 apparmor 的目录 4&#xff09;、执行 apparmor 策略模块 5&#xff09;、修改 pod 文件 6&#xff09;、…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)

2025年能源电力系统与流体力学国际会议&#xff08;EPSFD 2025&#xff09;将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会&#xff0c;EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

定时器任务——若依源码分析

分析util包下面的工具类schedule utils&#xff1a; ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类&#xff0c;封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz&#xff0c;先构建任务的 JobD…...

P3 QT项目----记事本(3.8)

3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

在Ubuntu中设置开机自动运行(sudo)指令的指南

在Ubuntu系统中&#xff0c;有时需要在系统启动时自动执行某些命令&#xff0c;特别是需要 sudo权限的指令。为了实现这一功能&#xff0c;可以使用多种方法&#xff0c;包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法&#xff0c;并提供…...

浅谈不同二分算法的查找情况

二分算法原理比较简单&#xff0c;但是实际的算法模板却有很多&#xff0c;这一切都源于二分查找问题中的复杂情况和二分算法的边界处理&#xff0c;以下是博主对一些二分算法查找的情况分析。 需要说明的是&#xff0c;以下二分算法都是基于有序序列为升序有序的情况&#xf…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)

本期内容并不是很难&#xff0c;相信大家会学的很愉快&#xff0c;当然对于有后端基础的朋友来说&#xff0c;本期内容更加容易了解&#xff0c;当然没有基础的也别担心&#xff0c;本期内容会详细解释有关内容 本期用到的软件&#xff1a;yakit&#xff08;因为经过之前好多期…...

vulnyx Blogger writeup

信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面&#xff0c;gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress&#xff0c;说明目标所使用的cms是wordpress&#xff0c;访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...