操作系统二版徐宗元第四章实验3课件.docVIP

操作系统二版徐宗元第四章实验3课件.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统二版徐宗元第四章实验3课件.doc

磁盘I/O API函数应用 一.实习要求 本实习着重于了解磁盘的物理组织,以及如何通过用户态的程序直接调用磁盘I/O API函数(DeviceIoControl)根据输入的驱动器号读取驱动器中磁盘的基本信息,在Windows2000环境进行实习。 二.相关的API 介绍 1.获取磁盘的基本信息的磁盘I/O API函数DeviceIoControl格式如下: BOOL DeviceIoControl( HANDLE hDevice,   DWORD dwioControlCode,        LPVOID lplnBuffer,   DWORD nlnBufferSize,        LPVOID lpOutBuffer,   DWORD nOutBufferSize,        LPDWORD lpBytesReturned,LPOVERLAPPED lpOverlapped ); .hDevice:所要进行操作的设备的句柄,它通过调用CreateFile函数来获得。 .dwIoControlCode:指定操作的控制代码。这个值用来辨别将要执行的指定的操作,以及对哪一种设备进行操作。对磁盘应设置为IOCTL_DISK_GET_DRIVE_GEOMETRY。 .lpInBuffer:操作所要的输入数据缓冲区指针,NULL表示不需要输入数据。 .nInBufferSize:指定lpInBuffer所指向的缓冲区的大小(以字节为单位)。 .lpOutBuffer:接收操作输出的数据缓冲区指针,NULL表示操作没有产生输出数据。输出数据的缓冲区要足够大,对磁盘它采用固定的数据结构DISK_GEOMETRY,格式如下: struct DISK_GEOMETRY { unsigned bytesPerSector; unsigned sectorsPerTrack; unsigned heads; unsigned cylinders; } .nOutBufferSize:指定lpOutBuffer所指向的缓冲区的大小(以字节为单位)。 .lpBytesReturned:指向一个变量,它接收lpOutBuffer所指的缓冲区储存的数据个数。 .lpOverlapped:指向一个OVERLAPPED结构。 返回值:如果函数调用成功,返回值是一个非0值。如果函数调用失败GetLastError函数来获得相关的错误信息。 2.建立文件或打开一个已存在文件API函数CreateFile 该函数用来创建或打开下列对象(文件、管道、目录、邮件插口、控制台、通信资源、磁盘设备等)并返回一个用于读取该对象的句柄。 HANDLE CreateFile ( LPCTSTR lpFilename , DWORD dwDesiredAccess , DWORD dwShareMode ,LPSECURITY_ATTRIBUTES lpSecurityAttributes , DWORD dwCreationDisposition , DWORD dwFlagsAndAttributes , HANDLE hTemplateFile ); .lpFileName:指向一个以NULL结束的字符串的指针,该字符串用于创建或打开对象、指定对象名。 .dwDesiredAccess:指定对对象的访问类型,一个应用程序可以得到读、写、读写或设备查询访问等类型,此参数可以为下列值的任意一个组合值: .0:指定对象的查询访问权限,一个应用程序可以不通过访问设备来查询设备属性。 .GENERIC_READ:指定对象的读访问,可以读文件的数据且可移动文件中的指针。 .GENERIC_WRITE:指定对象的写访问,可以写文件的数据且可以移动文件指针,写访问GENERIC_WRITE要与GENERIC_READ联合使用。 .dwShoreMode:设成NULL即可。 .lpSecurityAttributes:设成NULL即可。 .dwCreationDisposition:指定对存在的文件采取哪种措施,且当文件不存在时采用哪种措施,此函数必须是下列值中的一个: .CREAT_NEW:创建一个新文件,如果文件存在,则函数调用失败。 .CREAT_ALWAYS:创建一个新文件,如果文件存在,函数重写文件且清空现有属性。 .OPEN_EXISTING:打开文件,如果文件不存在,则函数调用失败。 .OPEN_ALWAYS:如果文件存在,则打开文件。如果文件不存在,则创建一个新文件。 .TRUNCATE_EXISTING:打开文件,一旦文件打开,就被删截掉,

您可能关注的文档

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档