加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

winapi – Win32 API在当前的Windows版本中仍然是“原生的”吗?

发布时间:2020-12-13 22:35:53 所属栏目:Windows 来源:网络整理
导读:如果我的程序主要使用win32 API,我的API调用是否在 Windows XP / Vista / 7中模拟? 解决方法 它下面是Windows NT内核,本机NT应用程序使用(很大程度上未记录的)NT API与它进行交互. csrss.exe是“客户端/服务器运行时子系统”,是提供用户模式Win32子系统的本
如果我的程序主要使用win32 API,我的API调用是否在 Windows XP / Vista / 7中模拟?

解决方法

它下面是Windows NT内核,本机NT应用程序使用(很大程度上未记录的)NT API与它进行交互.

csrss.exe是“客户端/服务器运行时子系统”,是提供用户模式Win32子系统的本机NT应用程序,win32k.sys提供内核模式Win32子系统.如果没有这两个加载,Win32应用程序无法运行.

smss.exe是“会话管理器子系统”,是启动期间要执行的第一个应用程序.作为其任务之一,它启动Win32子系统.

你认为“本土”是什么?内核根本不了解Win32 – 所有Win32 API调用都由运行时和csrss处理,最终归结为NT API调用.但是,如果没有Win32子系统,您永远不会运行Windows.

Windows也存在OS / 2和POSIX子系统.我不相信它们是常用的.

如果你熟悉UNIX,这里有一个粗略的比喻:syslog(3)是一个原生API吗?

POSIX强制要求它的存在.它可能由libc运行时库实现为“连接到套接字/管道并发送消息”.除非syslogd守护程序正在运行,否则这不起作用. sys脚本守护程序由init脚本启动.

这不是一个完美的类比;许多应用程序不依赖于syslog(3),并且通常可以停止并重新启动syslogd守护程序,而不会对系统的操作产生不利影响(与csrss.exe非常不同).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读