代码之家  ›  专栏  ›  技术社区  ›  Paulo Santos

有人在Windows Mobile中使用过远程擦除吗?

  •  0
  • Paulo Santos  · 技术社区  · 15 年前

    我刚得到我的Treo,注意到缺乏软件重置(在重置按钮上使用触笔的需要真的让我恼火),我决定建立自己的。

    我的小程序的重置和挂起部分工作起来很有魅力,然后我决定再改进一点,添加一个硬重置功能,将设备恢复到出厂设置。

    在网上搜索高低,我找到了两种可能的方法。第一个涉及到打电话 SetCleanRebootFlag() 然后重置设备。

    [DllImport("coredll.dll", SetLastError=true)]
    public static extern void SetCleanRebootFlag();
    
    [DllImport("coredll.dll", SetLastError=true)]
    private static extern int SetSystemPowerState(IntPtr psState, PowerStateFlags flags, uint Options);
    
    [DllImport("coredll.dll", SetLastError=true)]
    private static extern bool KernelIoControl(int dwIoControlCode, IntPtr inBuf, int inBufSize, IntPtr outBuf, int outBufSize, ref int bytesReturned);
    
    public static void SoftReset()
    {
        if (SetSystemPowerState(IntPtr.Zero, PowerStateFlags.Reset, 0x1000) != 0)
        {
            int bytesReturned = 0;
            if (!KernelIoControl(0x101003c, IntPtr.Zero, 0, IntPtr.Zero, 0, ref bytesReturned))
            {
                throw new Win32Exception(Marshal.GetLastWin32Error());
            }
        }
    }
    
    public static void HardReset()
    {
        SetCleanRebootFlag();
        SoftReset();
    }
    

    另一个涉及使用 ConfigurationManager 处理将执行“远程擦除”的XML。

    public static void HardReset()
    {
        XmlDocument doc = new XmlDocument();
        doc.LoadXml("<wap-provisioningdoc>" + 
                        "<characteristic type='RemoteWipe'>" + 
                            "<parm name='doWipe' value='1'/>" +
                        "</characteristic>" +
                    "</wap-provisioningdoc>");
        ConfigurationManager.ProcessConfiguration(doc, true);
    }
    

    第一个方法不起作用,因为在Windows Mobile 5之后,它忽略了 CleanBootFlag 第二种方法奏效了…太多。

    它损坏了设备上的microSD,以至于需要重新格式化才能再次被识别。

    有人对此有经验吗?


    编辑以添加 : 不幸的是,我的问题的答案和 Paul Betts 说。引用 MSDN

    远程擦除配置服务提供程序允许移动运营商远程擦除设备。远程擦除配置服务提供程序将使数据存储在 内存、存储卡和硬盘 如果设备丢失或被盗后被远程擦除,则很难恢复。

    1 回复  |  直到 15 年前
        1
  •  2
  •   Ana Betts    15 年前

    这不是什么 Remote Wipe 该怎么办?