遍历驱动器并获取驱动器属.docx_第1页
遍历驱动器并获取驱动器属.docx_第2页
遍历驱动器并获取驱动器属.docx_第3页
遍历驱动器并获取驱动器属.docx_第4页
遍历驱动器并获取驱动器属.docx_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于visual c+之windows核心编程代码分析(23)遍历驱动器并获取驱动器属性 分类: VC+编程技术 Visual Studio2012 Windows8 信息安全 2011-12-17 12:48 100人阅读 评论(0) 收藏 举报 我们在进行Windows编程的时候,经常需要进行遍历驱动器并获取驱动器属性,我们来实现遍历驱动器并获取驱动器属性。请见代码实现与注释讲解view plaincopy to clipboardprint?1. #define_WIN32_WINNT0x0501 2. /*头文件*/3. #include 4. #include 5. /*预定义*/6. #defineBUFSIZEMAX_PATH 7. /*函数申明*/8. BOOLGetDirverInfo(LPSTRszDrive);9. 10. /*11. *功能应用程序主函数,遍历驱动器并调用12. *GetDirverInfo获取驱动器属性13. */14. intmain(void)15. 16. TCHARbufBUFSIZE;/卷标信息 17. HANDLEhVol;/卷遍历句柄 18. BOOLbFlag;19. 20. hVol=FindFirstVolume(buf,BUFSIZE);21. 22. if(hVol=INVALID_HANDLE_VALUE)23. 24. printf(TEXT(Novolumesfound!n);25. return(-1);26. 27. 28. GetDirverInfo(buf);29. 30. while(FindNextVolume(31. hVol,32. buf,33. BUFSIZE34. )35. 36. GetDirverInfo(buf);37. 38. 39. bFlag=FindVolumeClose(40. hVol41. );42. 43. return(bFlag);44. 45. 46. /*47. *BOOLGetDirverInfo(LPSTRszDrive)48. *功能获取驱动器的属性49. *参数LPSTRszDrive50. *指明要获取属性的驱动器的根路径如C:51. *返回值BOOL是否成功52. */53. BOOLGetDirverInfo(LPSTRszDrive)54. 55. UINTuDriveType;56. DWORDdwVolumeSerialNumber;57. DWORDdwMaximumComponentLength;58. DWORDdwFileSystemFlags;59. CHARszFileSystemNameBufferBUFSIZE;60. CHARszDirveNameMAX_PATH;61. printf(n%sn,szDrive);62. uDriveType=GetDriveType(szDrive);63. switch(uDriveType)64. 65. caseDRIVE_UNKNOWN:66. printf(Thedrivetypecannotbedetermined.);67. break;68. caseDRIVE_NO_ROOT_DIR:69. printf(Therootpathisinvalid,forexample,novolumeismountedatthepath.);70. break;71. caseDRIVE_REMOVABLE:72. printf(Thedriveisatypethathasremovablemedia,forexample,afloppydriveorremovableharddisk.);73. break;74. caseDRIVE_FIXED:75. printf(Thedriveisatypethatcannotberemoved,forexample,afixedharddrive.);76. break;77. caseDRIVE_REMOTE:78. printf(Thedriveisaremote(network)drive.);79. break;80. caseDRIVE_CDROM:81. printf(ThedriveisaCD-ROMdrive.);82. break;83. caseDRIVE_RAMDISK:84. printf(ThedriveisaRAMdisk.);85. break;86. default:87. break;88. 89. if(!GetVolumeInformation(90. szDrive,91. szDirveName,92. MAX_PATH,93. &dwVolumeSerialNumber,94. &dwMaximumComponentLength,95. &dwFileSystemFlags,96. szFileSystemNameBuffer,97. BUFSIZE98. )99. 100. returnFALSE;101. 102. if(0!=lstrlen(szDirveName)103. 104. printf(nDriveNameis%sn,szDirveName);105. 106. 107. printf(nVolumeSerialNumberis%u,dwVolumeSerialNumber);108. printf(nMaximumComponentLengthis%u,dwMaximumComponentLength);109. printf(nSystemTypeis%sn,szFileSystemNameBuffer);110. 111. if(dwFileSystemFlags&FILE_SUPPORTS_REPARSE_POINTS)112. 113. printf(Thefilesystemdoesnotsupportvolumemountpoints.n);114. 115. if(dwFileSystemFlags&FILE_VOLUME_QUOTAS)116. 117. printf(Thefilesystemsupportsdiskquotas.n);118. 119. if(dwFileSystemFlags&FILE_CASE_SENSITIVE_SEARCH)120. 121. printf(Thefilesystemsupportscase-sensitivefilenames.n);122. 123. /youcanusethesevaluetogetmoreinformaion 124. / 125. /FILE_CASE_PRESERVED_NAMES 126. /FILE_CASE_SENSITIVE_SEARCH 127. /FILE_FILE_COMPRESSION 128. /FILE_NAMED_STREAMS 129. /FILE_PERSISTENT_ACLS 130. /FILE_READ_ONLY_VOLUME 131. /FILE_SUPPORTS_ENCRYPTION 132. /FILE_SUPPORTS_OBJECT_IDS 133. /FILE_SUPPORTS_REPARSE_

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论