zoukankan      html  css  js  c++  java
  • WinCE 文件系统分区的卸载 加载

    学习文章:

    http://blog.sina.com.cn/s/blog_5f0215c70100d3j7.html  

    WINCE与WM的差异(1)-查询文件系统目录结构

    MSDN :http://msdn.microsoft.com/zh-cn/office/ee490204  Storage Manager Functions (Windows Embedded Compact 7)

    (msdn,我用的太悲剧了,每次都不能快速的在目录索引下找到WinCE的目录,但偶尔翻的翻的就不知道怎么翻到WinCE的目录了,7也是。。。)

    	HANDLE h_store;
    	STOREINFO StoreInfo;
    	StoreInfo.cbSize = sizeof(STOREINFO);
    	h_store = FindFirstStore(&StoreInfo);
    	if (h_store !=INVALID_HANDLE_VALUE)
    	{
    		printf("查找Store成功 \n");
    		printf("szDeviceName =%ls\n", StoreInfo.szDeviceName);
    		printf("szStoreName =%ls\n", StoreInfo.szStoreName);
    		printf("dwDeviceClass =%d\n", StoreInfo.dwDeviceClass);
    		printf("dwDeviceType =%d\n", StoreInfo.dwDeviceType);
    		printf("dwDeviceFlags =%d\n", StoreInfo.dwDeviceFlags);
    		printf("dwPartitionCount =%d\n", StoreInfo.dwPartitionCount);
    		printf("dwMountCount =%d\n", StoreInfo.dwMountCount);
    		/*	szDeviceName =DSK1:
    			szStoreName =EMULATOR SHARED FOLDER FS
    			dwDeviceClass =2
    			dwDeviceType =536870912
    			dwDeviceFlags =1
    			dwPartitionCount =1
    			dwMountCount =1*/
    		HANDLE h_openStore;
    		h_openStore = OpenStore(L"DSK1:");
    		HANDLE h_part;
    		PARTINFO PartInfo;
    		PartInfo.cbSize = sizeof(PARTINFO);
    		h_part = FindFirstPartition(h_openStore,&PartInfo);
    		//FindFirstPartition第一个参数是OpenStore的返回值,不能用FindFirstStore的返回值
    		if (h_part !=INVALID_HANDLE_VALUE)
    		{
    			printf("查找第一个Store分区成功\n");
    			do 
    			{
    				
    				printf("szPartitionName =%ls\n", PartInfo.szPartitionName);
    				printf("szFileSys =%ls\n", PartInfo.szFileSys);
    				printf("szVolumeName =%d\n", PartInfo.szVolumeName);
    
    			} while (FindNextPartition(h_part,&PartInfo));
    
    			/*szPartitionName =PART00
    			szFileSys =VCEFSD.dll
    			szVolumeName =324996*/
    		}
    		else
    		{
    			printf("查找第一个Store分区失败\n");
    		}
    
    		FindClosePartition(h_part);
    
    	}
    
    	if(FindNextStore(h_store,&StoreInfo))
    	{
    		printf("不止唯一Store\n");
    	}
    	else
    	{
    		printf("只有一个Store\n");
    	}
    	FindCloseStore(h_store);

      

    输出的是模拟器的信息

    还没结束,今天没时间测试了,也没机器,

    工作的机器放资源的分区是隐藏的,每次放资源或程序的时候感觉忒麻烦。。尤其是心情烦躁的时候。

    目标:做一个程序,一点击就修改注册表键值 ,将对应分区注册表隐藏设置为显示,然后卸载分区,再加载分区,应该会方便。

    明天继续

    ---------------------------------------------------------------------------------------------------------------------------------

    //将要显示的分区的注册表隐藏设置为假。

    void CPartitionControlDlg::ChangeRegKeyValue()
    {
    	HKEY	hOpenKey;
    	DWORD   dwKeyValueType = 0;
    	DWORD	dwKeyValue;
    	DWORD   dwKeyValueLength = sizeof(DWORD);
    	if(ERROR_SUCCESS == RegOpenKeyEx( HKEY_LOCAL_MACHINE, L"System\\StorageManager\\Profiles\\Nand\\NANDFATFS",0, 0, &hOpenKey ))
    	{
    		long lResult = 0;
    		lResult = RegQueryValueExW( hOpenKey, L"MountHidden", 0, &dwKeyValueType,(BYTE*)&dwKeyValue, &dwKeyValueLength);
    		if(lResult ==ERROR_SUCCESS)
    		{
    			printf("读取注册表成功,achKey = %d\n",dwKeyValue);
    			dwKeyValue = 0;
    			RegSetValueExW(hOpenKey,L"MountHidden",0,dwKeyValueType,(BYTE*)&dwKeyValue,dwKeyValueLength);
    			
    		}
    		else
    		{
    			printf("读取失败 :lResult = %d\n",lResult);
    		}
    		
    			//RegSetValueEx(hKey, TEXT("Screen"), 0, dwType, (LPBYTE)&dwData, dwDataLen);
    		RegCloseKey( hOpenKey );
    	}
    
    }
    

      

    //卸载、加载指定分区

    void CPartitionControlDlg::OnBnClickedButton2()
    {
    	// TODO: Add your control notification handler code here
    
    	ChangeRegKeyValue();
    
    	HANDLE h_openStore;
    	h_openStore = OpenStore(L"DSK1:");
    	HANDLE h_NandPart;
    	PARTINFO PartInfo;
    	PartInfo.cbSize = sizeof(PARTINFO);
    	h_NandPart = OpenPartition(h_openStore,L"Part01");
    
    	if (DismountPartition(h_NandPart))
    	{
    		printf("NAND分区卸载成功\n");
    	}
    	else
    	{
    		printf("NAND分区卸载失败\n");
    		MessageBox(L"显示NAND失败");
    		CloseHandle(h_NandPart);
    		CloseHandle(h_openStore);
    		return;
    	}
    	if (MountPartition(h_NandPart))
    	{
    		printf("NAND分区加载成功\n");
    	}
    	else
    	{
    		printf("NAND分区加载失败\n");
    		MessageBox(L"显示NAND失败");
    		CloseHandle(h_NandPart);
    		CloseHandle(h_openStore);
    		return;
    	}
    
    	CloseHandle(h_NandPart);
    	CloseHandle(h_openStore);
    	MessageBox(L"显示NAND成功");
    
    }
    

      



  • 相关阅读:
    HTML5结构
    HTML5新增的非主体元素header元素、footer元素、hgroup元素、adress元素
    CF GYM 100703G Game of numbers
    CF GYM 100703I Endeavor for perfection
    CF GYM 100703K Word order
    CF GYM 100703L Many questions
    CF GYM 100703M It's complicate
    HDU 5313 Bipartite Graph
    CF 560e Gerald and Giant Chess
    POJ 2479 Maximum sum
  • 原文地址:https://www.cnblogs.com/ezhong/p/2171453.html
Copyright © 2011-2022 走看看