当前位置: 首页 > 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;能够处理大量并发连接和高流量的网络流量。…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻

在如今就业市场竞争日益激烈的背景下&#xff0c;越来越多的求职者将目光投向了日本及中日双语岗位。但是&#xff0c;一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧&#xff1f;面对生疏的日语交流环境&#xff0c;即便提前恶补了…...

椭圆曲线密码学(ECC)

一、ECC算法概述 椭圆曲线密码学&#xff08;Elliptic Curve Cryptography&#xff09;是基于椭圆曲线数学理论的公钥密码系统&#xff0c;由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA&#xff0c;ECC在相同安全强度下密钥更短&#xff08;256位ECC ≈ 3072位RSA…...

React Native 导航系统实战(React Navigation)

导航系统实战&#xff08;React Navigation&#xff09; React Navigation 是 React Native 应用中最常用的导航库之一&#xff0c;它提供了多种导航模式&#xff0c;如堆栈导航&#xff08;Stack Navigator&#xff09;、标签导航&#xff08;Tab Navigator&#xff09;和抽屉…...

【JavaEE】-- HTTP

1. HTTP是什么&#xff1f; HTTP&#xff08;全称为"超文本传输协议"&#xff09;是一种应用非常广泛的应用层协议&#xff0c;HTTP是基于TCP协议的一种应用层协议。 应用层协议&#xff1a;是计算机网络协议栈中最高层的协议&#xff0c;它定义了运行在不同主机上…...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中&#xff0c;手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力&#xff0c;既支持点击、长按、拖拽等基础单一手势的精细控制&#xff0c;也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

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

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

linux 下常用变更-8

1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行&#xff0c;YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID&#xff1a; YW3…...

【HTML-16】深入理解HTML中的块元素与行内元素

HTML元素根据其显示特性可以分为两大类&#xff1a;块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

Go 语言并发编程基础:无缓冲与有缓冲通道

在上一章节中&#xff0c;我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道&#xff0c;它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好&#xff0…...

如何更改默认 Crontab 编辑器 ?

在 Linux 领域中&#xff0c;crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用&#xff0c;用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益&#xff0c;允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...