Windows CE 中多线程编程的要点
模块:在 Windows CE 中不支持 SYS 格式的 Device drivers, 而是用全部采用 DLL
DLL 在执行是不会产生对立的线程
进程:
当系统启动时,有四个进程被建立:
a. NK.exe - 内核
b. FileSys.exe - 文件系统
c. GWES.exe - GUI 支持
d. Device.exe - 驱动调入
建立一个进程:
BOOL CreateProcess (LPCTSTR lpApplicationName,
LPCTSTR lpCommandLine,
LPSECURITY_ATTRIBUTES lpProcessAttributes,
LPSECURITY_ATTRIBUTES lpThreadAttributes,
BOOL bInheritHandles, DWORD dwCreationFlags,
LPVOID lpEnvironment,
LPCTSTR lpCurrentDirectory,
LPSTARTUPINFO lpStartupInfo,
LPPROCESS_INFORMATION lpProcessInformation);
因为在 CE 中不支持很多 XP 中的特性,所以最终的调用通常是:
BOOL CreateProcess (LPCTSTR lpApplicationName,
LPTSTR lpCommandLine, NULL, NULL, FALSE,
DWORD dwCreationFlags, NULL, NULL, NULL,
LPPROCESS_INFORMATION lpProcessInformation);
参数 lpProcessInformation
是一个结构
typedef struct _PROCESS_INFORMATION {
HANDLE hProcess;
HANDLE hThread;
DWORD dwProcessId;
DWORD dwThreadId;
} PROCESS_INFORMATION;
线程: