【Windows学习笔记】1:OneCore和Windows API

news2024/9/21 20:26:03

1 OneCore

主流Windows跑在PC上,Xbox跑的是从Windows 2000分支出来的版本,Windows Phone跑的是基于Windows CE(实时操作系统)的版本。

为了维护和扩展这些code方便,微软将kernels和base platform集成在一起叫OneCore,这个共享平台给所有的Windows版本使用。

这些平台互不相同,比如P在HoloLens上支持键鼠就不合理,所以这些部分不在OneCore里,但是kernel、driver和base platform binary之类的是相同的(有些feature可以通过registry-based或者policy-based settings使得在不同的平台上都make sense)。

2 Windows API

指和Windows相关OS的user-mode的系统编程接口,也叫Win32 API,但是指代的包含32-bit和64-bit的版本。在MSDN(Microsoft Developer Network)上可以在线浏览各种Windows API。

2.1 COM (Component Object Model)

由于Windows API最早都设计成C-style的function,好处是足够low level,并且能方便被其它语言access,但是坏处是naming consistency和logical groupings不好,所以就做了COM。

COM最早是给Office做文档之间的数据交换的(比如把Excel表嵌入在Word或者PPT里),这个功能最早是用基于DDE(Dynamic Data Exchange)的OLE(Object Linking and Embedding)做的,所以COM就是第二代的OLE,最早也叫OLE 2。

COM用的是类似C++实现virtual function的方式,COM client会用在virtual table机制下的一组method去调 COM server object,这样就解决了编译器的name mangling问题,所以它可以被很多不同的语言或者编译器调用,比如C/C++/VB/.Net/Delphi等。COM server一般就是以DLL或者EXE的形式。COM还有一些security、跨进程marshalling、线程模型之类的feature。

像DirectShow、Windows Media Foundation、DirectX等用的就是COM形式的API。

2.2 WinRT (Windows Runtime)

从Windows 8开始引入的,基于COM添加了各种扩展而构建的一种新的调用方式。

C++、JS以及.Net平台上的语言可以方便地用WinRT的API,比如对C++而言,是提供了一种标准之外的extension叫C++/CX来让它用简便的方式消费WinRT types。

2.3 .Net Framework

.Net Framework是Windows的一部分,下图是Windows版本默认安装的.Net Framework版本(可以装更新的.Net Framework版本,但是不能装更久的版本)。
在这里插入图片描述
.Net Framework主要由两个组件组成:

  • CLR(Common Language Runtime):.Net的runtime engine,包含将CIL(Common Intermediate Language)转换成底层的机器语言的JIT(Just In Time)编译器、GC、类型验证、code access security组件等等。
  • FCL(.Net Framework Class Library):一组实现好的类型集合,可以用于网络服务编程、数据库访问等等。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2092455.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python中如何import文件?

背景 我在一个语言大模型项目中,多个地方要使用API,这涉及到API密钥的设置,关键我想把项目开源出来,用户设置为自己密钥的时候想提供方便,仅修改一个文件即可,这样会提供方便。于是有了下面的探索 问题 目…

2024年“羊城杯”粤港澳大湾区网络安全大赛 AI部分

2024年“羊城杯”粤港澳大湾区网络安全大赛 AI部分 Author:Ns100kUp From:极安云科-服务中心 Data:2024/08/27 Copyright:本内容版权归属极安云科,未经授权不得以任何形式复制、转载、摘编和使用。培训、环境、资料、考证 公众号…

[QCTF2018]X-man-A face1

下载解压后发现一张缺失左上和左下的二维码,先补齐,扫扫看,请ps 在ps中打开我们需要把右上的回型图案复制,分别黏贴到左上和左下正确位置 先按W键调出魔术棒工具,我的容差已调好,不需要再调试,…

VS Code 一些好用的扩展插件

目录 1.改中文 2.不同注释色 3.显示Color颜色 4.显示尾部空格 5.快捷提示 6.调出颜色面板 7.git 提交记录 8.本地修改记录 9.文件比较 10.Post请求测试 11.实时显示代码的运行结果 12.自动修改标签名 13.在选中代码两边添加各种引号、括号 14.自动添加console.log…

BRAS(宽带接入服务器)简介

文章目录 BRAS的主要功能IP地址分配功能AAA(认证、计费、授权) BRAS的工作流程PPPoE(基于以太网的点对点通讯协议)vBRAS(虚拟宽带远程接入服务器) 宽带接入服务器(Broadband Remote Access Serv…

【奇某信-注册_登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…

23种设计模式之模版方法模式

文章目录 模版方法模式简单实现 - 炒菜**总结** 模版方法模式 一、定义与概念 模板方法模式是一种行为设计模式,它定义了一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。…

中智科学技术评价研究中心与中企数研究院实现全面合作

8月29日,中智科学技术评价研究中心与《中国企业报》集团数字化发展研究院在北京顺喜山庄成功举办“数字经济GBC生态系统管理平台”项目实施落地座谈会及研究院高层管理集训班,并签署了项目合作协议。此次合作标志着双方将在“数字中国发展战略”的大背景…

录屏神器Camtasia 2024中文永久激活版安装教程+汉化补丁 破解版激活码

它来了它来了,它带着Camtasia2024最新版来了! 录屏&剪辑软件 Camtasia 如期发布最新版,带来的新功能非常实用!我们今天带来的是Camtasia Studio 2024最新版,附带crack破解程序(注册机)和激…

基于yolov8的篮球计数检测系统python源码+onnx模型+评估指标曲线+精美GUI界面

【算法介绍】 基于YOLOv8的篮球计数检测系统是一种高效、精准的目标检测技术,专为篮球比赛中的篮球计数而设计。该系统利用YOLOv8这一先进的深度学习算法,通过实时分析比赛视频或图像,能够迅速且准确地识别并计数篮球的数量。 YOLOv8作为YO…

【系统架构设计师-2014年】综合知识-答案及详解

文章目录 【第1~2题】【第3~4题】【第5题】【第6~8题】【第9题】【第10~11题】【第12题】【第13题】【第14题】【第15题】【第16~17题】【第18题】【第19~21题】【第22~23题】【第24题】【第25题】【第26题】【第27~28题】【第29题】【第30题】【第31题】【第32题】【第33~34题…

《高等代数》范德蒙德行列式的应用

说明:此文章用于本人复习巩固,如果也能帮助到大家那就更加有意义了。 注:范德蒙德行列式的简单应用及其变形。 范德蒙德行列式的计算公式: 注:(1)用大下标减去小下标。 (2&#xf…

深入理解并实现——归并排序【C语言】

目录 一、概念 二、递归版实现 三、非递归实现 三、文件归并排序 小结 一、概念 归并排序(Merge sort)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将…

【论文阅读】Single-Stage Visual Query Localization in Egocentric Videos

paper: code: 简介: 长篇自我中心视频的视觉查询定位需要时空搜索和指定对象的定位。之前的工作开发了复杂的多级管道,利用完善的对象检测和跟踪方法来执行 VQL(视觉查询定位)。然而,每个阶段…

智能创作与优化新时代:【ChatGPT-4o】在【数学建模】、【AI绘画】、【海报设计】与【论文优化】中的创新应用

目录 1. 引言 什么是ChatGPT4o? 背景与发展历史 2.chatgpt4o数学建模 常见的数学建模专业术语及其简要说明 一个具体的代码例子 问题描述 代码实现 代码说明 运行结果 3.chatgpt4o在论文 1.例如生成基于标签的推荐系统模型及算法研究 1. 摘要 2. 引…

微信搜一搜下面搜索发现是什么?收录规则因素有哪些?如何能被搜索发现话题标签收录?

前言:为什么想到写这个?上周白杨SEO玩赚流量群里的一个群友私下问我怎么能被微信里搜索发现这个话题标签收录,问规则是什么,所以今天就来简单分享一下,如果你也感兴趣,可以看看。 文章大纲: 1、…

Go 1.19.4 文件读写操作-Day 14

1. 文件读写操作 在我们对一个文件进行读写操作前,有一个必做步骤,那就是要先打开文件。 打开文件主要使用os模块的 Open 和 OpenFile 。 Open:适合读。OpenFile:适合读写。 2. 打开文件 2.1 Open 作用: 以只读方式打…

书生浦语-MindSearch

1.目的 利用SiliconCloud提供的免费Intern2.5-7B-Chat的API部署MindSearch。 2.过程 2.1 在GitHub上打开codespace主页 我们首先在GitHub上打开codespace,选择blank template。 然后打开一个Web端的vscode,将MindSearch进行clone mkdir -p /workspa…

二叉树详解(进阶)

目录 1. 二叉搜索树 1.1 基本概念 1.2 基本操作 1.3 性能分析 1.4 键值对 2. AVL树和红黑树 2.1 AVL树 2.2 红黑树 3. 红黑树模拟实现STL中的map与set 1. 二叉搜索树 1.1 基本概念 二叉搜索树(BST,Binary Search Tree)&#xff1a…

记录一次安装Studio卸载后再次安装反复打不开的问题

先说问题表现,低版本的安装后点击没反应,高版本的报错,如下图,反复卸载安装都没有用,网上也找了各种彻底卸载安卓Studio的方法也不行 Error occurred during initialization of VMagent library failed Agent OnLoad:…