局域网搭建centos yum 服务器
2014-06-30 18:11
197 查看
It's interesting to work with the subsystem. Recently I discovered a bug of CPL(Control Panel) in reactos. The original one didn't send SPI to subsystem, and also the way of sending is incorrect. How do we get system parameter set and sent to the kernel space and also updated in registry? It itself is complicated problem. While my understanding is , CPL itself a dll calls SystemParametersInfo, and this API is in user32.dll, the API is implemented in the user32\misc\desktop.c we get two versions there SystemParametersInfoA and SystemParametersInfoW dealing with different encoding as other APIs do. And this API establishes a call to NtUserSystemParametersInfo which switch to the kernel mode. And the kernel mode subsystem would deal with the DATA sent from CPL. At last we understand the calling chain clear. Inside the subsystem , the core func calls UserSystemParametersInfo internally. After some protection check in kernel mode being done , the kernel func calls IntSystemParametersInfo. This at last deal with the data we sent. There are two ways of sending data to this func.
c 代码
ULONG FASTCALL IntSystemParametersInfo( UINT uiAction, UINT uiParam, PVOID pvParam, UINT fWinIni)
As we can see there are uiAction which stands for our action, uiParam & pvParam represents different data sent. When we are sending some int like builtin small data we use the 2nd arg uiParam, while if we want to pass more we need pvParam. And obviously pvParam points to area of user space. So it's already get probed correct in order to not result KeBugCheck. That's how our Control Panel works. And at last I developed the software mouse acceleration for Reactos. It's also in subsystem. Subsystem is really a funny place to play with. And I hope someday POSIX subsystem gets done, and running linux binaries in Reactos. Maybe coLinux uses the similar implementation as a subsystem
c 代码
ULONG FASTCALL IntSystemParametersInfo( UINT uiAction, UINT uiParam, PVOID pvParam, UINT fWinIni)
As we can see there are uiAction which stands for our action, uiParam & pvParam represents different data sent. When we are sending some int like builtin small data we use the 2nd arg uiParam, while if we want to pass more we need pvParam. And obviously pvParam points to area of user space. So it's already get probed correct in order to not result KeBugCheck. That's how our Control Panel works. And at last I developed the software mouse acceleration for Reactos. It's also in subsystem. Subsystem is really a funny place to play with. And I hope someday POSIX subsystem gets done, and running linux binaries in Reactos. Maybe coLinux uses the similar implementation as a subsystem
相关文章推荐
- 配置VSS2005(在局域网内搭建服务器)
- 搭建CentOS yum 源服务器
- 用Easyphp搭建服务器后让局域网中其他电脑访问网站的方法
- Windows下搭建局域网/本地的Subversion 服务器
- 解决外网无法访问局域网中XP下搭建的FTP服务器
- 在局域网中搭建自己的YP服务器
- 搭建minisipserve服务器实现局域网内IOS客户端idoubs的通信(可打电话 发短信)
- Win7下搭建WEB服务器,局域网内其它机器访问不到
- 搭建局域网CentOS Yum服务器
- Maven3 安装使用(三)--搭建公司局域网maven服务器
- Windows下搭建局域网/本地的Subversion 服务器
- 如何使用Win7 IIS信息服务器搭建局域网FTP服务器【图文教程】
- 搭建局域网YUM服务器
- 如何使用局域网中一台机器搭建面向广域网的Web服务器: DMZ主机
- 局域网搭建小组级git服务器
- 局域网搭建FTP服务器
- 局域网中搭建James服务器并实现与外网收发邮件
- 局域网代码共享——Hg服务器搭建
- 局域网搭建SVN服务器
- [转]用Easyphp搭建服务器后让局域网中其他电脑访问网站的方法