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

Windows API 文件结构与功能分类详解

文章目录

  • Windows API 文件结构与功能分类详解
    • 一、总体目录结构回顾
    • 二、按功能模块分类详解
      • 🖼️ 1. 图形界面与窗口系统(UI / Input)
      • 🌐 2. 通信与网络(Networking / IPC)
      • 🔌 3. 硬件与外设(USB / HID / 设备枚举)
      • 💾 4. 文件系统与存储
      • ⚙️ 5. 系统与进程管理
      • 🎮 6. 图形、音频与多媒体
      • 🔒 7. 安全与身份验证
      • ⚡ 8. 系统设备与电源管理
      • ☁️ 9. WinRT / 现代 API 层
    • 三、总结与建议

Windows API 文件结构与功能分类详解

路径示例:

C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0

Windows SDK 的 Include 文件夹是整个 Win32 / WinRT API 的“头文件地图”。
这些 API 按目录分层(um/, shared/, ucrt/, winrt/, cppwinrt/),又在内部按功能模块划分成不同的头文件。

本文从两个维度讲解:

  1. 各目录的结构定位(总览)
  2. 按功能划分:UI、通信、USB、系统、图形、音频、安全等模块在哪些头文件中定义

一、总体目录结构回顾

目录主要内容常见用途
ucrt/标准 C 库头文件stdio.h, string.h, math.h
shared/通用结构体、类型定义windef.h, guiddef.h, winerror.h
um/用户模式 API(Win32)windows.h, winuser.h, winsock2.h, fileapi.h
cppwinrt/C++/WinRT 投影现代 C++ 开发 WinRT 应用
winrt/传统 WinRT 接口定义旧版系统接口兼容支持

二、按功能模块分类详解

🖼️ 1. 图形界面与窗口系统(UI / Input)

这些头文件定义了窗口、消息、输入事件、GDI 绘图、窗口控件等基础界面功能。

功能常用头文件所属目录说明
基本窗口系统windows.h, winuser.hum创建窗口、消息循环、键鼠事件
图形绘制 (GDI)wingdi.h, gdiplus.hum位图、字体、颜色、打印支持
菜单和对话框commdlg.h, shellapi.hum打开文件、消息框、图标等
控件与UI框架commctrl.h, uxtheme.hum常用控件(按钮、列表、进度条)
高级UI(WinRT/WinUI)cppwinrt/winrt/Windows.UI.*.hcppwinrt现代 WinUI、UWP 控件体系

现代 C++ UI 推荐使用 WinUI 3 或 DirectComposition,传统桌面则依然基于 user32.dll + gdi32.dll


🌐 2. 通信与网络(Networking / IPC)

Windows SDK 为网络通信、进程间通信(IPC)和远程调用提供了完整的支持。

功能常用头文件所属目录说明
Socket 网络通信winsock2.h, ws2tcpip.humTCP/UDP、IPv4/IPv6 支持
HTTP / WinInetwininet.h, winhttp.humHTTP 客户端 / 代理请求
命名管道namedpipeapi.hum本地进程通信
共享内存 / 文件映射memoryapi.hum进程间共享数据
RPC / DCOMrpc.h, objidl.h, combaseapi.hum远程过程调用 / COM 接口
WebSocket (WinRT)cppwinrt/winrt/Windows.Networking.Sockets.hcppwinrt现代异步通信接口

WinSock 仍然是底层通信首选,而 WinRT Networking 适合 UWP / App SDK 开发。


🔌 3. 硬件与外设(USB / HID / 设备枚举)

涉及 USB、蓝牙、串口、设备接口等的头文件主要分布在 um/ 目录。

功能常用头文件所属目录说明
通用设备接口setupapi.hum设备安装、枚举、属性获取
USB 设备访问usb.h, usbspec.h, usbioctl.hum定义 USB 协议结构和 IOCTL 控制码
HID 输入设备hidclass.h, hidsdi.hum鼠标、键盘、手柄
串口通信winbase.h, commapi.h, winnt.humCreateFile("COMx") 操作串口
蓝牙接口bluetoothapis.h, bthdef.hum蓝牙设备枚举与通信
传感器与位置sensorsapi.h, locationapi.hum获取加速度、GPS、方向传感器数据

对 USB 设备的直接访问一般通过 WinUSB 或 HID 层完成,而 SetupAPI 负责设备发现。


💾 4. 文件系统与存储

Windows 的文件操作接口非常丰富,从基础 I/O 到 Shell 集成都在 um/ 中定义。

功能常用头文件所属目录说明
基础文件操作fileapi.h, winbase.hum打开、读写、移动、删除文件
目录 / 路径操作shlwapi.h, pathcch.hum路径拼接、文件名操作
文件属性 / 时间winnt.h, sysinfoapi.hum时间戳、权限
压缩存储cabinet.h, compressapi.hum系统压缩 API
注册表访问winreg.hum读写系统注册表
文件监控winbase.hum文件系统事件通知
Shell 文件系统集成shobjidl.h, shellapi.hum桌面快捷方式、文件对话框

⚙️ 5. 系统与进程管理

这一部分是 Win32 API 的“核心系统”部分,几乎所有程序都依赖。

功能常用头文件所属目录说明
进程 / 线程控制processthreadsapi.h, synchapi.hum启动进程、线程同步
内存管理memoryapi.h, heapapi.hum虚拟内存、堆操作
时间 / 计时sysinfoapi.h, profileapi.hum系统时间、性能计数器
服务管理winsvc.humWindows 服务控制
环境变量 / 系统信息processenv.h, sysinfoapi.hum环境变量、系统版本
错误码 / 状态码winerror.hsharedHRESULT 定义与错误处理

🎮 6. 图形、音频与多媒体

Windows 在图形和音频接口上分为传统 GDI、多媒体 API、DirectX、Media Foundation、XAudio2 等多层。

功能常用头文件所属目录说明
传统图形 (GDI)wingdi.hum位图、字体、绘图
现代图形 (DirectX)d3d11.h, d2d1.h, dxgi.humGPU 图形渲染
音频播放mmeapi.h, xaudio2.h, mmdeviceapi.hum音频输入输出、XAudio2
多媒体框架mfapi.h, mfidl.h, mfreadwrite.humMedia Foundation 视频音频处理
图像编解码wincodec.humWIC 图像加载、保存
游戏控制器xinput.h, dinput.hum手柄输入支持

🔒 7. 安全与身份验证

涉及访问控制、加密、权限等。

功能常用头文件所属目录说明
用户权限与令牌securitybaseapi.h, winnt.hum访问控制、令牌操作
ACL / SID 管理aclapi.h, accctrl.hum访问控制列表管理
加密与证书wincrypt.h, bcrypt.h, ncrypt.humCryptoAPI / CNG 接口
Windows 凭据wincred.humCredential Manager
安全日志winevt.hum事件日志记录与查询

⚡ 8. 系统设备与电源管理

管理电源、设备、电池、睡眠等系统状态。

功能常用头文件所属目录说明
电源管理powrprof.hum电源方案、休眠
电池信息batclass.hum电池状态查询
PnP 设备管理cfgmgr32.hum设备管理器接口
驱动交互winioctl.hum设备 I/O 控制码定义

☁️ 9. WinRT / 现代 API 层

这些是现代 Windows 应用(UWP / WinUI 3)的 API,封装了更高级别的功能。

功能命名空间 / 头文件所属目录示例功能
应用生命周期winrt/Windows.ApplicationModel.*.hcppwinrt启动、后台任务
UI 控件winrt/Windows.UI.Xaml.*.hcppwinrt界面布局、绑定
文件系统winrt/Windows.Storage.*.hcppwinrt访问沙盒文件系统
通信winrt/Windows.Networking.*.hcppwinrtSocket、HTTP
媒体winrt/Windows.Media.*.hcppwinrt播放、录制、捕获
设备访问winrt/Windows.Devices.*.hcppwinrt蓝牙、USB、传感器

三、总结与建议

开发方向重点目录常用头文件备注
桌面应用 (Win32)um/ + shared/windows.h, winuser.h, wingdi.h传统 API
系统工具 / 服务um/processthreadsapi.h, winsvc.h服务与后台任务
设备控制 / USB 通信um/setupapi.h, usbioctl.h, hidclass.h需驱动层接口
网络与通信um/winsock2.h, winhttp.h, ws2tcpip.hSocket 通信
现代应用 / UIcppwinrt/winrt/Windows.UI.*.hWinUI、XAML
图形 / 游戏开发um/d3d11.h, dinput.h, xinput.hDirectX 系列

💡 建议阅读路径:

  1. 想写 Win32 桌面程序 → 从 windows.hwinuser.hwingdi.h
  2. 想写 USB/硬件通信 → 看 setupapi.h, usbioctl.h, winioctl.h
  3. 想写现代 C++ App → 使用 cppwinrt/,查阅 winrt::Windows.* 命名空间
  4. 想玩底层系统调用 → 阅读 winnt.hprocessthreadsapi.h

总结一句话:
Windows SDK 的 Include 目录不仅是系统 API 的“地图”,更是整个 Windows 平台编程模型的分层体现。从 C 标准库(ucrt),到 Win32 API(um),再到现代 WinRT(cppwinrt),每一层都服务于不同代际的应用开发需求。

http://www.dtcms.com/a/517264.html

相关文章:

  • 网站建设费开票收候开在哪个类别里做用户名验证的网站服务器
  • 常熟制作网站的地方wordpress解决速度慢
  • 自己可以做网站推广吗最新的新闻 最新消息
  • Redis不停机升级5.0.3->8.0.4
  • 做网站语言排名2018网站开发的方法和步骤
  • 网页设计入门首先要学什么企业网站优化与推广
  • 抓住园艺消费升级!亚马逊卖家如何从“卖单品”升级为“做品牌”
  • FPGA-ZYNQ学习对BD的保存与应用
  • 博罗县建设局网站免费好玩的网页游戏
  • 强化运动控制领域布局,杰美康机电授权世强硬创代理
  • 容器适配器、关联容器的相关算法题目
  • 微网站的好处优秀产品设计公司哪家好
  • 树莓派Pico 2W 开发环境搭建
  • 零基础从头教学Linux(Day 54)
  • Dexmal原力灵机发布Dexbotic,从此具身智能研发有了“加速器”
  • 电子商务网站建设步网页打不开验证码图片
  • 怎样做自己的微商网站个人网站备案建设方案书
  • 《用于触觉感知的电阻式传感器技术的最新进展》IEEE SENSORS 2022综述文章解读
  • Redis vs RabbitMQ 对比总结
  • 初识C语言11.数据在内存中的存储
  • 操作系统存储管理核心知识点与例题详解
  • 人工智能风险与伦理(3)
  • the scientist and engineer‘s guide to DSP:5 Linear Systems
  • 近一个月的技术问题总结
  • 360网站推广官网怎么优化网站开发的项目内容
  • 用多工具组合把 iOS 混淆做成可复用的工程能力(iOS混淆|IPA加固|无源码混淆|Ipa Guard|Swift Shield)
  • 丽水网站建设企业wordpress空白页面模板下载
  • 如何推广企业官方网站内容微信公众号推广链接
  • 同一源代码再建设一个网站网站建设升级的必要性
  • Linux:开发工具