- 1、本文档共57页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章节_软件接口技术
首先,这些API函数要将用户程序的请求转换为对内核态I/O系统服务的请求 然后,设备驱动程序将结果交给I/O管理器,由I/O管理器转换CPU运行空间,将处理结果返回给Win32 API函数,最终由所请求的Win32 API将结果交给用户。 5.4.3 Windows的系统调用 在Windows系统中,对于用户提出的设备使用请求,是通过调用Win32子系统中的API函数实现的。 5.4.3.Windows的功能调用 Windows系统中,对于用户提出的设备使用请求,是通过调用Win32子系统中的API函数实现的。 Windows 9X与Windows NT中的Win32子系统并不相同,两个子系统是相互独立的 Windows NT中,Win32子环境有两类: 一类位于用户态空间,用户态API 而另一类位于内核态空间,内核态API 5.4.4 Windows的功能调用函数API的分类及特征 API分类 窗口管理类API 图形设备接口类API 系统服务类API Windows的API函数担负着为所有的应用程序提供所有的服务功能。它们的主要特征是: 支持多任务 采用模块化的结构 支持动态装载链接 5.4.5 API应用举例 1. Windows关于文件操作的主要API接口函数 ① 建立文件函数CreatFile ② 文件打开操作函数HFILE_lopen HFILE_lopen(LPCSTR lpPathName,int iReadWrite) ③ 文件建立操作函数HFILE_lcreat HFILE_lcreat(LPCSTR lpPathName,int iAttribute) ④ 移动文件的读写指针函数SetFilePoint DWORD SetFilePoint(HANDLE hFile,LONG iDistanceToMove, PLONG lpDistanceToMoveHigh,DWORD dwMoveMethod) ⑤ 移动文件指针操作函数LONG_llseek LONG_llseek(HFILE hFile,LONG LOffset,int LOrigin) ⑥ 读文件函数ReadFile及写文件函数WriteFile HANDLE CreateFile(LPCTSTR lpFileName,DWORD dwDesiredAccess,DWORD dwShareMode,LPSECURITY--_ATTRIBUTES lpsecurityAttributes, DWORD dwCreationDisposition,DWORD dwFlagsAndAttributrs, HADEL hTemplateFile) BOOL ReadFile(HANDLE hFile,LPVOID ipBuffer,DWORD nNumberOfByteToRead, LPDWORD lpNumberOfBytesRead, LPOVERLAPPED lpOverlapped) BOOL WriteFile(HANDLE hFile,LPCVOID lpBuffer, DWORD nNumderOfBytesToWrite,LPDWORD lpNumberOfBytesWrite, LPOVERLAPPED lpOverlapped) ⑦ 文件读操作函数UINT_lread及文件写操作函数UINT_ lwrite UINT_lread(HFILE hFile,LPVOID lpBuffer,UINT uBytes) UINT_ lwrite(HFILE hFile,LPCSTR lpBuffer,UINT uBytes) ⑧ 关闭对象句柄函数CloseHandle及文件关闭操作函数HFILE_lclose BOOL CloseHandle(HANDLE hObject) HFILE_lclose(HFILE hFile) ⑨ 内存空间分配函数GlobalAlloc HGLOBAL GlobalAlloc(Uint uFlags,DWORD dwBytes) ⑩ 锁定一个全局内存对象函数GlobalLock LPVOID GlobalLock(HGLOBAL hMem) 2. 应用举例 下面的例子是调用Windows操作系统的文件服务功能,打开一个文件,将文件头部1000个字节后的内容读入缓冲区中的一段程序。 BOOL LoadFile(char *FileName) { HFILE hf; // 定义文件句柄变量
文档评论(0)