Chinaunix首页 | 论坛 | 博客
  • 博客访问: 80289
  • 博文数量: 19
  • 博客积分: 851
  • 博客等级: 准尉
  • 技术积分: 281
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-27 20:53
文章分类

全部博文(19)

文章存档

2009年(19)

我的朋友

分类: WINDOWS

2009-03-27 21:37:32

突然心血来潮,停下了捣鼓一时的linux,踏上window ce的学习历程。一向讨厌win32编程,人生无奈.........
 
翻出抽屉里发黄的YC-2440开发板。首先装了个VS2005,PB5.0.......将开发板按照开发板商的DOC,跑起来了。听老鸟们讲,实践出真知。估计,俺还得从驱动入手,毕竟跟硬件接口较为紧密写,上手快些。
 
驱动的编写,这里面似乎牵涉到了多线程的编程,这个可是一向若怕的地方。
windows CE中的线程并不是最小的调度单位,当其被创建之后,windows的虚拟内存机制会把它占有的内存与其他的进程隔离开来,各自的进程就在各自的区域运行啦。它也桌面环境的差别在于:
1.不支持环境变量(Environment Variable)
2.米有当前目录(Current Directory)的概念
3.不支持安全
4.不支持句柄继承
后面似乎是比较关键的东东.......
1.创建进程(桌面系统与CE的不同)
BOOL CreateProcess
(
     LPCWSTR pszImageName, // 可执行程序的路径及文件名 (系统默认.exe)
     LPCWSTR pszCmdLine,   // 传递给这个可执行程序的命令行参数
     LPSECURITY_ATTRIBUTES psaProcess, // 安全性权限描述符 (NULL)
     LPSECURITY_ATTRIBUTES psaThread,  //                (NULL)
     BOOL fInheritHandles, // 句柄继承                    (FALSE)
     DWORD fdwCreate,      // 规定如何创建新进程
     LPVOID pvEnvironment, // 指定进程所要用到的环境字符串的内存块(NULL)
     LPWSTR pszCurDir,     // 设定新进程的当前目录              (NULL)
     LPSTARTUPINFOW psiStartInfo, // 指定新进程的STARTINFO结构体(NULL)
     LPPROCESS_INFORMATION pProcInfo // 指定新进程的PROCESS_INFORMATION结构
);
CreateProcess被创建时,系统将创建一个进程内核对象,内核对象计数器+1.然后系统将会为其分配一个虚拟地址空间,将该进程需要的EXE和DLL加载到这个地址空间.最后为这个进程创建一个主线程,如果成功,返回TRUE。
主要的进程:
NK.exe                   //系统服务
Filesys.exe/Filesys.dll  //对象存储
GWES.exe/GEWS.dll        // 图形.窗口.事件服务
device.exe               // 设备管理
explorer.exe             // shell
services.exe             // 服务管理
repllog.exe              // 系统与外部设备连接
rapisrv.exe              // 系统与windows连接
 
 
阅读(857) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:win32数据类型一览

给主人留下些什么吧!~~