欢迎来到天天文库
浏览记录
ID:38427288
大小:23.56 KB
页数:5页
时间:2019-06-12
《遍历驱动器并获取驱动器属性》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、基于visualc++之windows核心编程代码分析(23)遍历驱动器并获取驱动器属性分类:VC++编程技术VisualStudio2012Windows8信息安全2011-12-1712:48100人阅读评论(0)收藏举报我们在进行Windows编程的时候,经常需要进行遍历驱动器并获取驱动器属性,我们来实现遍历驱动器并获取驱动器属性。请见代码实现与注释讲解 viewplaincopytoclipboardprint?1.#define _WIN32_WINNT 0x0501 2./* 头文件
2、 */ 3.#include 4.#include 5./* 预定义 */ 6.#define BUFSIZE MAX_PATH 7./* 函数申明 */ 8.BOOL GetDirverInfo(LPSTR szDrive); 9. 10./* ************************************ 11.* 功能 应用程序主函数,遍历驱动器并调用 12.* GetDirverI
3、nfo 获取驱动器属性 13.**************************************/ 14.int main(void) 15.{ 16. TCHAR buf[BUFSIZE]; // 卷标信息 17. HANDLE hVol; // 卷遍历句柄 18. BOOL bFlag; 19. 20. hVol = FindFirstVolume (buf, BUFSIZE ); 21. 22. if
4、 (hVol == INVALID_HANDLE_VALUE) 23. { 24. printf (TEXT("No volumes found!")); 25. return (-1); 26. } 1. 2. GetDirverInfo (buf); 3. 4. while( FindNextVolume( 5. hVol, 6. buf, 7. BUFSIZE 8.
5、 )) 9. { 10. GetDirverInfo (buf); 11. } 12. 13. bFlag = FindVolumeClose( 14. hVol 15. ); 16. 17. return (bFlag); 18.} 19. 20./* ************************************ 21. * BOOL GetDirverInfo(LPSTR szDriv
6、e) 22. * 功能 获取驱动器的属性 23. * 参数 LPSTR szDrive 24. * 指明要获取属性的驱动器的根路径 如 C: 25. * 返回值 BOOL 是否成功 26. **************************************/ 27.BOOL GetDirverInfo(LPSTR szDrive) 28.{ 29. UINT uDriveType; 30. DWORD dwVolumeSerialNumber; 31.
7、 DWORD dwMaximumComponentLength; 32. DWORD dwFileSystemFlags; 33. CHAR szFileSystemNameBuffer[BUFSIZE]; 34. CHAR szDirveName[MAX_PATH]; 35. printf("%s",szDrive); 1. uDriveType = GetDriveType(szDrive); 2. switch(uDriveType
8、) 3. { 4. case DRIVE_UNKNOWN: 5. printf("The drive type cannot be determined. "); 6. break; 7. case DRIVE_NO_ROOT_DIR: 8. printf("The root path is invalid, for example, no volume is mounted at the path. ");
此文档下载收益归作者所有