创建 Windows
来源:互联网 发布:交通仿真软件怎么用 编辑:程序博客网 时间:2024/06/01 07:20
创建 Windows
CreateNewWindows,这是一个导出函数,在isolation.h中有定义:
/* [local] */ HRESULT __stdcall CreateNewWindows(
/*[annotation][in] */
_In_ DWORD dwFlags,
/*[annotation][full][in] */
_In_ LPCWSTR pszSystemDrive,
/*[annotation][out] */
_Inout_ POFFLINE_STORE_CREATION_PARAMETERSpParameters,
/*[annotation][out] */
_Out_opt_ PVOID *ppvKeys,
/*[annotation][out] */
_Out_opt_ DWORD *pdwDisposition);
CreateNewWindows 调用CreateWindows,
CreateWindows调用:
PrivilegeAcquisition::Acquire
CreateImportantFiles
CreateImportantRegKeys
还有两个相似的导出函数,CreateNewPseudoWindows 和 CreateNewPseudoWindowsEx:
/* [local] */ HRESULT __stdcall CreateNewPseudoWindows(
/*[annotation][in] */
_In_ DWORD dwFlags,
/* [annotation][full][in]*/
_In_opt_ LPCWSTR pszDirectoryRoot,
/*[annotation][full][in] */
_In_opt_ LPCWSTR pszRegistryRoot,
/*[annotation][out] */
_Inout_ POFFLINE_STORE_CREATION_PARAMETERSpParameters);
/* [local] */ HRESULT __stdcall CreateNewPseudoWindowsEx(
/*[annotation][in] */
_In_ DWORD dwFlags,
/*[annotation][full][in] */
_In_opt_ LPCWSTR pszDirectoryRoot,
/*[annotation][full][in] */
_In_opt_ LPCWSTR pszRegistryRoot,
/*[annotation][out] */
_Inout_ POFFLINE_STORE_CREATION_PARAMETERSpParameters,
/*[annotation][out] */
_Out_opt_ PVOID *ppvRootkey);
在CCSIExternalTransformerExecutor初始化中会调用CreateNewPseudoWindows。
CreateNewPseudoWindows就调用了CreateNewPseudoWindowsEx。
CreateNewPseudoWindowsEx 又调用了 CreatePseudoWindows。
CreatePseudoWindows就直接调用创建目录、创建键。
DWORDd = 0;
LPVOIDppvKeys;
OFFLINE_STORE_CREATION_PARAMETERSpParameters = {sizeof(pParameters) };
pCreateNewPseudoWindows(0,L"C:\\CSITEST",L"HKCU\\CSITEST", &pParameters);
pCreateNewWindows(1,L"C:\\CSITEST", &pParameters, &ppvKeys, &d);
pDismountRegistryHives(ppvKeys);
CreateNewPseudoWindows创建了的目录和键,重要的是用这些值对OFFLINE_STORE_CREATION_PARAMETERS进行了初始化;
CreateNewWindows就创建了注册表文件,并把注册表文件挂载到HKEY_LOCAL_MACHINE\{bf1a281b-ad7b-4476-ac95-f47682990ce7},形成如HKEY_LOCAL_MACHINE\{bf1a281b-ad7b-4476-ac95-f47682990ce7}C:/CSITEST/system_volume/Users/Default/NTUSER.DAT这样的 11 个挂接点。
那么,以后对这里的操作就应该相当于对离线映像的操作了。
DismountRegistryHives把 11个挂接点卸载掉。
- 创建 Windows
- 创建windows 服务 (windows service)
- 创建 Windows XP 图标
- 创建 Windows XP 图标
- windows服务创建过程
- 创建 Windows XP 图标
- 创建 Windows 服务应用程序
- 创建Windows Service
- Windows服务的创建
- C#创建Windows服务
- C#创建Windows服务
- 创建 Windows CE 帮助
- windows服务创建过程
- 创建Windows特殊文件夹
- 创建windows服务
- C# 创建 Windows 服务
- Windows SDK 创建窗体
- 创建透明 Windows 窗体
- 调试的错误就是编程给你最好的东西,因为在每个错误上面都标志着前进的一步。
- nyoj19
- 德国机械自动化程度如此高,不服不行-----阿冬专栏
- Amcharts 3 时间格式化
- 使用v7包中的recyclerview遇到的问题简单记录一下
- 创建 Windows
- head tail 显示文件的前几行和最后几行
- MySQL执行Select语句将结果导出到文件的方法
- 关于linux-Centos 7下mysql 5.7.9的rpm包的安装方式
- Html5移动应用开发入门——环境搭建(IONIC)
- PullToRefresh(下拉刷新)源码浅析
- 使用RecyclerView横向滑动实现仿到位的滑动(写的不好,还有未解决的地方)
- 卸载注册表的挂接点
- NodeJS搭建博客系统(二)构建一个markdown页面