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”。

    很多初学者都会将这两个命名混淆哦!

你可能感兴趣的:(thread,api,存储,ide,WinCE,disk)