WINCE FindFirstStore / FindNextStore查找存儲器

如何查找設備上是否有指定盤符

 

  可以通過讀取系統註冊表或調用 API函數來實現,下面是以查找磁盤(Hard Disk)設備爲例,通過API函數查詢指定存儲設備的程序片段。

STOREINFO StoreInfo;
 memset(&StoreInfo, 0, sizeof(STOREINFO));   //切記定義後要初始化,否則後面將查找不到任何存儲器
 StoreInfo.cbSize = sizeof(STOREINFO);

 HANDLE hDevice = FindFirstStore( &StoreInfo );
 iResult=0;
 if( INVALID_HANDLE_VALUE != hDevice )
 {
    do
    {
    //判斷是否爲指定存儲設備
    if( 0 == wcscmp( StoreInfo.szStoreName, TEXT("IDE Hard Disk Drive") ) )
    {
     iResult=1; 
     //如果查找到指定存儲設備,則打印信息到調試串口
       RETAILMSG( 1, (TEXT("Hard Disk%s has been inserted/n") ,
            StoreInfo.szDeviceName ));

        hThread = CreateThread(NULL,0,FileTestThread,(LPVOID)TEXT("//Hard Disk"),0,&dwThreadID);
      SetThreadPriority(hThread, THREAD_PRIORITY_LOWEST);//*/
      break ;

    }
    }while( FindNextStore( hDevice, &StoreInfo ) );
 }

 

   需要注意的是:存儲器名字("IDE Hard Disk Drive")需要通過查找平臺註冊表platform.reg文件得知。註冊表中存儲器的參數中:“Name”即是指這裏的szStoreName,而註冊表的"Folder"是指掛載目錄名“Hard Disk”。

    很多初學者都會將這兩個命名混淆哦!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章