
电脑正在下载大文件、导出视频或执行构建这时临时离开按下 WinL 会不会让任务停掉已经打开的私密文档又是否随之“重新加密”这两个问题经常被混为一谈。我们参与开发的超级看门狗 SuperWatchDog是一款 Windows 本地隐私保护工具用自动触发方式处理“有人突然靠近”“来不及操作电脑”和“离开电脑后没有及时保护”的问题并提供本地加密文件保险箱。要理解它补充了哪一层先要弄清 Windows 自身的状态边界。锁屏、注销和睡眠不是同一件事锁屏主要撤走当前桌面的交互入口并要求重新验证身份注销会结束用户会话以及大部分会话内进程睡眠则改变整台设备的电源状态。因此设备保持唤醒时锁屏后下载、编译和渲染通常仍可继续但具体结果还取决于程序本身、网络与电源计划。RunResultPredict(Jobjob,MachineStatemachine){if(machine.LoggedOff)returnRunResult.Stopped;if(machine.Sleeping)returnjob.CanResume?RunResult.Paused:RunResult.Uncertain;if(machine.SessionLocked)returnjob.CanRunInBackground?RunResult.Continuing:RunResult.AppDefined;returnRunResult.Continuing;}判断流程应当是会话是否仍存在 ├─ 否会话内程序通常已经结束 └─ 是设备是否保持唤醒 ├─ 否任务暂停、恢复或失败由程序决定 └─ 是程序是否支持后台运行 ├─ 是通常继续 └─ 否按应用策略处理锁住交互入口不代表文件状态已经变化锁屏能够阻止未经验证的人直接回到桌面但不会自动关闭文档、释放文件句柄、卸载卷或把已经解锁的加密卷重新锁定。文件是否仍可访问要分别看当前账户权限、应用是否还持有文件、卷是否挂载并解锁以及静态存储是否受加密保护。recordFileState(boolSessionInteractive,boolDocumentOpen,boolVolumeMounted,boolVolumeUnlocked);boolNeedsMoreProtection(FileStatex)x.SessionInteractive||x.DocumentOpen||x.VolumeMounted||x.VolumeUnlocked;BitLocker 重点保护静态数据尤其是磁盘脱机读取场景。Windows 已启动、卷已解锁且用户会话仍存在时正常进程仍可能按权限继续访问文件。因此“桌面已锁定”和“私密文件已回到不可读状态”必须分别验证。监听会话事件也只能证明会话被锁定桌面程序如果需要获知锁定状态应使用 Windows 会话通知处理WTS_SESSION_LOCK与WTS_SESSION_UNLOCK不能靠显示器变黑、鼠标长时间未动来猜。LockWorkStation发起的也是异步锁定请求调用返回不等于后续所有保护动作已经完成。voidOnSessionChanged(SessionEvente){if(eSessionEvent.Locked)state.MarkLocked();if(eSessionEvent.Unlocked)state.MarkUnlocked();}更稳妥的动作顺序是先确认后台任务是否需要继续再保存未完成工作随后关闭相关窗口或文档最后按用户预设锁定本地加密文件保险箱。任何高影响动作都不应仅凭一次锁屏事件临时猜测。WinL 很适合在保留后台任务时切断桌面交互如果还希望在来不及操作或离开后同时处理屏幕、窗口和本地私密文件就需要额外的手动、快捷键、设备或可选离席触发并让每项动作都有明确预设和结果校验。