win32内核编程_09.pdf
《win32内核编程_09.pdf》由会员分享,可在线阅读,更多相关《win32内核编程_09.pdf(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、win32_09.txt=第九课 文件系统=一、文件系统基本概念-Windows操作系统管理磁盘数据的方式:FAT、FAT32、NTFS磁道:由若干扇区组成扇区:512字节文件系统的最小管理单位:簇连续的若干扇区 FAT32:1簇=32扇区=16K字节 NTFS :1簇=8扇区=4K字节 文件存储时,以簇为单位占用磁盘空间,即使只有1个字节,也要占用1簇空间。二、目录-1.获取磁盘驱动器信息DWORD WINAPI GetLogicalDrives(void);返回当前可用磁盘驱动器掩码位。高位-低位XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX .PONMLKJI H
2、GFEDCBA0:无此磁盘驱动器1:有此磁盘驱动器2.获取系统驱动器DWORD WINAPI GetLogicalDriveStrings(DWORD nBufferLength,/缓冲区大小(以字符为单位)LPTSTR lpBuffer /缓冲区指针);成功返回字符串长度,失败返回0。3.获取当前目录DWORD GetCurrentDirectory(DWORD nBufferLength,/缓冲区大小(以字符为单位)LPTSTR lpBuffer /缓冲区指针);成功返回字符串长度,失败返回0。4.设置当前目录第 1 页win32_09.txtBOOL SetCurrrentDirecto
3、ry(LPCTSTR lpPathName/当前目录路径);成功返回TRUE,失败返回FALSE。5.获取WINDOWS目录UINT GetWindowsDirectory(LPSTR lpBuffer,/缓冲区指针 UINT uSize /缓冲区大小(以字符为单位);成功返回字符串长度,失败返回0。6.获取系统(system32)目录UINT GetSystemDirectory(LPTSTR lpBuffer,/缓冲区指针 UINT uSize /缓冲区大小(以字符为单位);成功返回字符串长度,失败返回0。7.获取临时目录DWORD GetTempPath(DWORD nBufferLen
4、gth,/缓冲区大小(以字符为单位)LPTSTR lpBuffer /缓冲区指针);成功返回字符串长度,失败返回0。8.创建目录BOOL CreateDirectory(LPCTSTR lpPathName,/目录路径 LPSECURITY_ATTRIBUTES lpSecurityAttributes /安全属性,置NULL);成功返回TRUE,失败返回FALSE。9.删除空目录BOOL RemoveDirectory(LPCTSTR lpPathName/目录路径);第 2 页win32_09.txt成功返回TRUE,失败返回FALSE。10.目录/文件修改BOOL MoveFile(LP
5、CTSTR lpExistingFileName,/当前路径 LPCTSTR lpNewFileName /目标路径);成功返回TRUE,失败返回FALSE。注意:不能跨驱动器移动目录,但是可以跨驱动器移动文件。范例:WinDir三、文件-1.创建/打开文件HANDLE CreateFile(LPCTSTR lpFileName,/文件路径 DWORD dwDesiredAccess,/访问方式 DWORD dwShareMode,/共享方式 /其它进程以何种方式打开此文件 LPSECURITY_ATTRIBUTES lpSecurityAttributes,/安全属性(NULL)DWORD
6、dwCreationDisposition,/创建/打开方式 DWORD dwFlagsAndAttributes,/文件属性 HANDLE hTemplateFile /文件句柄模板 /磁盘文件设NULL同步传输,/打印机同步或异步传输);成功返回文件句柄,失败返回INVALID_HANDLE_VALUE(-1)。dwDesiredAccess为以下值的位或:0 -质询(判断文件是否存在)GENERIC_READ -读取 GENERIC_WRITE-写入dwShareMode为以下值的位或:FILE_SHARE_DELETE-允许其它进程删除 FILE_SHARE_READ -允许其它进程读
7、取 FILE_SHARE_WRITE -允许其它进程写入dwCreationDisposition取值:CREATE_NEW -不存在就创建,已存在就失败 CREATE_ALWAYS -不存在就创建,已存在就删除原文件再创建 OPEN_EXISTING -已存在就打开,不存在就失败 OPEN_ALWAYS -已存在就打开,不存在就创建新文件再打开 TRUNCATE_EXISTING-已存在就先清空再打开,不存在就失败2.写文件第 3 页win32_09.txtBOOL WriteFile(HANDLE hFile,/文件句柄 LPCVOID lpBuffer,/数据缓冲区 DWORD nNum
8、berOfBytesToWrite,/期望写入的字节数 LPDWORD lpNumberOfBytesWritten,/实际写入的字节数,/可为NULL LPOVERLAPPED lpOverlapped /NULL(同步传输);成功返回TRUE,失败返回FALSE。3.获取文件大小DWORD GetFileSize(HANDLE hFile,/文件句柄 LPDWORD lpFileSizeHigh/文件字节数的高32位,可为NULL);返回文件字节数的低32位。32位-4G64位-16E,实际2T小知识:数量单位的中英文表示法英文表示法:K,Kilo -103 -210M,Mega -106
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- win32 内核 编程 _09
限制150内