刚学完C语言,今天看Windows程序设计,感觉吃力,求大家指点
看了前几章,心里一直存在困惑。我对内核对象的理解和书本的解释感到有点混乱。
书本说内核对象是用户模式下的代码和内核模式下的代码的交互接口,后面又说内核对象只能被内核模式下的代码访问。
我的疑惑:既然是接口,那么就需要从事从用户模式到内核模式的转换工作,但这工作好像是API完成的。使用CreateProcess创建进程的同时系统会为新进程创建一个进程内核对象和一个线程内核对象(主线程),像这些内核对象应该是存放在4G虚拟内存后面2G的空间里吧?如果是,那么都内核对象都存放在内核模式下,怎么成为交互接口?
另外有关全局变量和静态变量的处理工作,是在CreateProcess调用C/C++运行期启动函数之前完成的,还是在调用C/C++运行期启动函数时完成初始化的?