Windows核心编程:同步设备I/O与异步设备I/O

作者:shenzi

链接:http://blog.csdn.net/shenzi

Windows核心编程:同步设备I/O与异步设备I/O
     在Microsoft Windows应用程序中,线程时我们最好的工具,可以用来对工作进行划分。我们可以给每个线程指定一个处理器,这样在多处理器的机器上就可以同时执行多 个操作,从而提高吞吐量。当线程发出一个异步设备I/O请求的时候,它会被临时挂起,直到设备完成I/O请求为止。此类挂起会损害性能,这是因为线程无法 进行有用的工作,比如开始对另一个客户请求进行处理。因此,简而言之,我们希望线程不会被阻塞住,这样它们就能始终进行有用的工作。
1.打开和关闭设备

    Windows的优势之一是它所支持的设备数量。就我们的讨论而言,我们把设备定义为能够与之进行通信的任何东西。表1列出了一些设备及其常见用途。

表1:各种设备及其常见用途

设备

常见用途

文件

永久存储任何数据

目录

属性和文件压缩的设置

逻辑磁盘驱动器

格式化驱动器

物理磁盘驱动器

访问分区表

串口

通过电话线传输数据

并口

将数据传输至打印机

邮件槽

一对多数据传输,通常是通过网络传到另一台运行Windows的机器上

命名管道

一对一数据传输,通常是通过网络传到另一台运行Windows的机器上

匿名管道

单机上的一对一数据传输(绝对不会跨网络)

套接字

报文或数据流的传输,通常是通过网络传到任何支持套接字的机器上(机器不一定要运行Windows操作系统)

控制台

文本窗口的屏幕缓存

                                               表2:用来打开各种设备的函数

设备

用来打开设备的函数

文件

CreateFile (pszName 为路径或UNC路径名).

目录

CreateFile (pszName 为路径或UNC路径名). 如果在调用CreateFile的时候指定 FILE_ FLAG_BACKUP_SEMANTICS 标志,

那么Windows允许我们打开一个目录。打开目录使我们能够改变目录的属性和它的时间戳。

逻辑磁盘驱动器

CreateFile (pszName is "//./x :"). 如果指定的字符串是 "//./x :"的形式,那么Windows允许我们打开一个逻辑磁盘驱动器,

其中的x是驱动器的盘符。打开驱动器使我们能够格式化驱动器或检测驱动器媒介的大小。

无力磁盘驱动器

CreateFile (pszName 为 "//./PHYSICALDRIVEx "). 如果指定的字符串是"//./PHYSICALDRIVEx " 的形式,那么Windows允许

我们打开一个屋里磁盘驱动器,其中的x是物理驱动器号。例如,为了读写用户的第一个物理驱动器的扇区,我们应该制定 "//./PHYSICALDRIVE0".

打开物理驱动器使我们能够直接访问硬盘的分区表。打开物理驱动器有潜在的危险,错误地写入设备可能会导致操作系统的文件系统无法访问磁盘的内容

串口

CreateFile (pszName 为 "COMx ").

并口

CreateFile (pszName 为 "LPTx ").

邮件槽服务器

CreateMailslot (pszName 为 "//./mailslot/mailslotname ").

邮件槽客户端

CreateFile (pszName 为 "//servername /mailslot/mailslotname ").

命名管道服务器

CreateNamedPipe (pszName 为 "//./pipe/pipename ").

命名管道客户端

CreateFile (pszName 为 "//servername /pipe/pipename ").

匿名管道

CreatePipe 用来打开服务器和客户端

套接字

socket , accept , 或AcceptEx .

控制台

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值