PoEdu培训 Windows班 第四课 WindowsIO操作
文章类别: 培训笔记 0 评论

PoEdu培训 Windows班 第四课 WindowsIO操作

文章类别: 培训笔记 0 评论

Windows IO操作

Windows程序中, 基础的运行单元为线程!
为每一个线程分配一个处理器, 可以让系统执行多个操作!
当线程进行一个IO操作是, 会被挂起, 从而影响性能!

为了解决这类问题, Windows使用了一套非常好的机制 I/O完成端口.

IO操作

IO完成端口机制

设备

Windows中的设备包括并不限于如下几个.

文件

在Windows编程中, 文件的定义为:二进制数据的集合
广义的文件定义这是根据文件格式定义不同意义的文件.

扩展阅读:
广义上的文件, Windows中的文件格式列表, 详情见 维基百科
维基百科访问请"搭梯子"

目录

逻辑磁盘驱动器

将Windows上的原始磁盘空间配置为逻辑驱动器或物理驱动器
逻辑驱动器在编程中常备用于格式化驱动器
比如 C, D, E, F 等等盘符.

物理磁盘驱动器

常备用于获取分区表
多个硬盘会有多个物理磁盘驱动器.

内核对象

串口

通过电话线发送信号, 单通道.
数据一位一位地顺序传送
通信线路简单, 只要一对传输线就可以实现双向通信(可直接利用电话线作为传输线)
从而大大降低了成本
适用于远距离通信,但传送速度较慢

USB

是英文Universal Serial Bus(通用串行总线)的缩写
是一个外部总线标准, 用于规范电脑与外部设备的连接和通讯
支持设备的即插即用和热插拔功能

并口

8通道
采用并行传输方式来传输数据的接口标准
种类有数十种

它的传输速度并不一定比串口快.

邮件槽

一对多, 通过网络进行传输.

命名管道

一对一, 通过网络进行传输.

匿名管道

一对一, 本机进行传输.

套接字

报文或数据流传输, 通过网络进行传输.

控制台

是与操作系统交互的设备

R0和R3文件对象的交互

通过一张图来看:
Alt 交互过程

文件打开方式

设备 打开方式 备注
文件 CreateFile(路径名或者UNC路径(局域网路径))
目录 CreateFile(路径名或者UNC路径(局域网路径)) 需要 FILE_FLAG_BACKUP_SEMENTICS 标志
逻辑磁盘 CreateFile(.?(盘符, C, D...):)
物理磁盘 CreateFile(.PHYSICALDRIVE?(编号, 一般1, 2,...))
串口 CreateFile(COM?(串口号, 1, 2, ...))
并口 CreateFile(LPT?(并口号, 1, 2, ...))
邮件槽服务器 CreateMailslot(.mailslot邮件槽名)
邮件槽客户端 CreateFile(servername(一般是UNC名)mailslot邮件槽名)
命名管道服务器 CreateNamedPipe(.pipe管道名)
命名管道客户端 CreateFile(servername(一般是UNC名)pipe管道名)
匿名管道 CreatePipe
套接字 Socket; accept

未完待续...

如有错误,请提出指正!谢谢.

回复