自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

大坡3D软件开发

自主操作系统和CPU--用软件和芯片来改变世界

  • 博客(26)
  • 资源 (44)
  • 收藏
  • 关注

原创 reactos操作系统实现(147)

通过上面的学习,可以了解到GDI最终的输出都是通过小端口向显示硬件输出,以便在显示器上显示所需要显示的内容。那为什么需要有小端口驱动程序呢?其实这是为了方便所有显示卡制造厂家编写驱动程序,同时又可以让制造厂家保密他们的内部技术秘密。使用小端口的驱动程序,也可以统一显示驱动程序的接口,也就把显示驱动程序功能简化开发。下面来分析目录里reactos/drivers/video/miniport/v

2009-11-30 22:32:00 1645

原创 reactos操作系统实现(146)

 Reactos的显示组成主要由GDI、视频端口驱动程序、小端口驱动程序和显示驱动程序组成。当GDI系统接到应用程序请求后,就会查找相应的小端口驱动程序,接着小端口驱动程序,就会设置视频端口驱动程序和显示驱动程序。在GDI和小端口驱动程序调用流程如下图所示:

2009-11-29 18:52:00 1700

原创 reactos操作系统实现(145)

 前面的函数已经介绍怎么样显示一个字符串了,那么下面就来仔细地实查看怎么样实现一个字符的显示,当然这里字符的显示,只是字母的显示,没有中文显示,如果需要实现中文字符的显示,就需要修改这个函数和相应的排版函数、读取相应的字体文件。由于显示卡已经被初始化为图形模式,那么所有字符的显示都生成图形方式来显示,文字也不例外,因此需要使用字体的点阵数据。具体实现代码如下:#001  VOID#002 

2009-11-28 22:35:00 1387

原创 reactos操作系统实现(144)

 当操作系统引导过程中,需要输出一些信息给用户来查看,那么就需要这个简单的VGA驱动程序,可以输出字符串显示,实现这个功能的函数就是VidDisplayString函数,具体实现的代码如下:#001  VOID#002  NTAPI#003  VidDisplayString(PUCHARString)#004  {#005      ULONG TopDelta = 14

2009-11-27 23:24:00 1755

原创 reactos操作系统实现(143)

 VgaIsPresent函数通过读取图形模式的索引寄存器和数据寄存器来检查VGA显示卡是否安装,实现代码如下:#001  BOOLEAN#002  NTAPI#003  VgaIsPresent(VOID)#004  {#005      UCHAR VgaReg, VgaReg2,VgaReg3;#006      UCHAR SeqReg, SeqReg2;#

2009-11-26 21:59:00 1765

原创 reactos操作系统实现(142)

 VidInitialize函数主要进行VGA简单视频显示模式初始化。具体实现代码如下:#001  BOOLEAN#002  NTAPI#003  VidInitialize(IN BOOLEANSetMode)#004  {#005      ULONG Context = 0;#006      PHYSICAL_ADDRESSTranslatedAddress

2009-11-25 23:14:00 1590 1

原创 reactos操作系统实现(141)

 在操作系统启动的早期阶段,由于很多基本的功能没有初始化(比如IO管理器都没有初始化),因此完整和功能强大的显示驱动程序是不可能运行的,那么就需要在这个阶段写一个比较简单的VGA显示驱动程序给内核引导时使用,这个驱动程序就是bootvid.dll。 先来分析在内核里调用初始化的位置,具体如下:#001  VOID#002  NTAPI#003 Phase1Initializ

2009-11-24 23:34:00 2347 2

原创 reactos操作系统实现(140)

 在创建文件成功后,然后就往文件里写入数据,而写入数据说明就需要文件系统给文件分配储存空间,以便保存这些数据到磁盘里,下面就来分析分配文件大小的函数,如下:#001  NTSTATUS#002  VfatSetAllocationSizeInformation(PFILE_OBJECTFileObject,#003                  PVFATFCB Fcb,#

2009-11-23 22:29:00 1628

原创 reactos操作系统实现(139)

 当用户删除文件时,就会通过ReactOS的API调用IO管理器函数,然后创建IRP包发送到文件系统驱动程序来,然后就调用下面函数来把文件分配的簇从FAT分配表时删除。具体实现的代码如下:#001  static NTSTATUS#002  FATDelEntry(#003      IN PDEVICE_EXTENSIONDeviceExt,#004      IN PVFA

2009-11-22 11:58:00 1527

原创 reactos操作系统实现(138)

 在FAT里,需要从目录入口项里找到文件的首簇数,下面这段代码就是实现这样的功能,如下:#001  ULONG#002  vfatDirEntryGetFirstCluster(PDEVICE_EXTENSION  pDeviceExt,#003                               PDIR_ENTRY  pFatDirEntry)#004  {#0

2009-11-21 23:40:00 1484

原创 reactos操作系统实现(137)

 VfatHasFileSystem函数主要用来读取FAT文件系统信息,并且判断这个磁盘卷是否为FAT文件系统,具体实现如下:#001  static NTSTATUS#002 VfatHasFileSystem(PDEVICE_OBJECT DeviceToMount,#003                    PBOOLEANRecognizedFS,#004   

2009-11-20 23:08:00 1800

原创 reactos操作系统实现(136)

 VfatMount函数主要用来安装FAT文件卷,具体实现代码如下:#001  static NTSTATUS#002  VfatMount (PVFAT_IRP_CONTEXTIrpContext)#003  /*#004   * FUNCTION: Mount thefilesystem#005   */#006  {#007     PDEVICE_OBJ

2009-11-19 23:28:00 2227

原创 reactos操作系统实现(135)

 当从IO管理器里调用函数IopParseDevice来分析设备时,就可以找到相应的磁盘设备,并在这个函数里调用函数IopCheckVpbMounted来检查这个文件系统是否加载,如果没有加载,就会调用函数IopMountVolume来加载文件卷,那么在这个函数里就会构造一个IRP发送给文件系统驱动程序,驱动程序就收到主功能码为IRP_MJ_FILE_SYSTEM_CONTROL和次功能码为IRP

2009-11-18 22:34:00 2107

原创 reactos操作系统实现(134)

 文件控制块主要用来表示一个ReactOS打开文件的对象。下面就来仔细地分析文件控制块的结构,如下:#001  typedef struct _VFATFCB#002  { ROS的文件头部,主要包括文件流的描述和系统使用的变量。#003    /* FCB header required byROS/NT */#004    FSRTL_COMMON_FCB_HEAD

2009-11-16 22:59:00 1440

原创 reactos操作系统实现(133)

 VfatReadDiskPartial函数主要用来构造一个IRP给底层驱动程序去读取数据返回。具体实现代码如下:#001  NTSTATUS#002  VfatReadDiskPartial (INPVFAT_IRP_CONTEXT IrpContext,#003              IN PLARGE_INTEGER ReadOffset,#004          

2009-11-15 22:23:00 1516 1

原创 reactos操作系统实现(132)

 VfatReadFileData函数主要用来从磁盘上读取文件数据,具体实现代码如下:#001  static NTSTATUS#002  VfatReadFileData(PVFAT_IRP_CONTEXT IrpContext,#003                    ULONGLength,#004           LARGE_INTEGERReadOf

2009-11-14 23:00:00 1341

原创 reactos操作系统实现(131)

 VfatRead函数用来读取FAT文件系统里的文件数据,如果缓冲区里有数据就直接从缓冲区里读取,否则就从磁盘上读取。具体实现如下:#001  NTSTATUS#002  VfatRead(PVFAT_IRP_CONTEXTIrpContext)#003  {#004     NTSTATUS Status;#005     PVFATFCB Fcb;#006    

2009-11-12 23:26:00 2088 1

原创 reactos操作系统实现(130)

 vfatMakeRootFCB函数是用来创建FAT文件系统的根目录,实现代码如下:#001  PVFATFCB#002  vfatMakeRootFCB(PDEVICE_EXTENSION  pVCB)#003  {#004     PVFATFCB  FCB;#005     ULONG FirstCluster, CurrentCluster, Size = 0;#0

2009-11-10 22:43:00 1338

原创 reactos操作系统实现(129)

 功能驱动将构造请求包,就可以发送到底层总线驱动上。因此需要创建一个IRP,这就需要用IoBuildDeviceIoControlRequest创建一个IO控制码的IRP,用IoCallDriver将URB发送到底层总线驱动上。由于上层驱动无法知道底层驱动是同步还是异步完成的,因此需要做一个判断。if语句判断当异步完成IRP时,用事件等待总线驱动完成这个IRP。#001  NTSTATUS

2009-11-09 23:10:00 1362

原创 reactos操作系统实现(128)

 VfatOpenFile函数主要用来打开FAT的文件。具体实现代码如下:#001  static#002  NTSTATUS#003  VfatOpenFile (#004     PDEVICE_EXTENSION DeviceExt,#005          PUNICODE_STRINGPathNameU,#006     PFILE_OBJECT FileO

2009-11-08 23:22:00 1412

原创 reactos操作系统实现(127)

 从上面的代码里可以看到调用函数VfatAddEntry来添加文件或目录的入口,其实现的代码如下:#001  NTSTATUS#002  VfatAddEntry(#003      INPDEVICE_EXTENSION DeviceExt,#004      IN PUNICODE_STRING NameU,#005      IN PVFATFCB *Fcb,#0

2009-11-07 22:03:00 1334

原创 reactos操作系统实现(126)

 VfatCreateFile函数主要用来创建或者打开一个文件,具体实现如下:#001  static NTSTATUS#002  VfatCreateFile (PDEVICE_OBJECT DeviceObject, PIRP Irp )#003  /*#004   * FUNCTION: Create or opena file#005   */#006  {

2009-11-05 22:54:00 1508 1

原创 reactos操作系统实现(125)

 VfatCreate函数创建或者打开一个文件。具体实现代码如下:#001  NTSTATUS#002  VfatCreate(PVFAT_IRP_CONTEXT IrpContext)#003  /*#004   * FUNCTION: Create or opena file#005   */#006  {#007     NTSTATUS Status;

2009-11-04 22:15:00 1148

原创 reactos操作系统实现(124)

 从上面的入口函数里可以看到,很多消息处理函数都是调用函数VfatBuildRequest来处理的,具体实现代码如下:#001  NTSTATUS NTAPIVfatBuildRequest (#002          IN PDEVICE_OBJECTDeviceObject,#003          IN PIRP Irp)#004  {#005     NTS

2009-11-03 23:03:00 1289

原创 reactos操作系统实现(123)

 目前,Reactos主要使用FAT的文件系统,因此下面就先来分析这个文件系统,以便了解这个文件系统的功能。这个文件系统的实现是在驱动程序FASTFAT.SYS里实现的,所以来分析这个驱动程序的源码,就可以了解FAT文件系统了。 6.2.1 FAT文件系统驱动程序入口函数FAT的文件系统是当作一个驱动程序来加载到系统里,因此它也有驱动程序的形式了,也就是它的入口点函数,还是Driver

2009-11-02 22:07:00 1503

原创 reactos操作系统实现(122)

 IoReadPartitionTable函数是读取磁盘分区表数据。它的实现代码如下:#001  NTSTATUS#002  FASTCALL#003  IoReadPartitionTable(INPDEVICE_OBJECT DeviceObject,#004                       IN ULONGSectorSize,#005        

2009-11-01 10:50:00 1614

python抓取天气并分析 实例源码

Python代码抓取获取天气预报信息源码讲解。这是一个用Python编写抓取天气预报的代码示例,用python写天气查询软件程序很简单。这段代码可以获取当地的天气和、任意城市的天气预报,原理是根据url找到网站截取相应的数据展现。 python抓取广州天气并分析 实例源码

2017-08-28

wix3.11版本安装工具

wix3.11版本安装工具

2017-06-19

WiX3.10版本安装工具

WiX3.10版本安装工具

2017-06-19

GOOGLE的TPU论文

GOOGLE公开TPU的论文

2017-04-06

深度强化学习论文

DQN的论文

2017-03-17

书《深度学习》

2015年,深度学习三大牛Yann LeCun、Yoshua Bengio和Geoffrey Hinton在最新的《Nature》杂志首次合作的发表综述文章《Deep Learning》。本文为该综述文章的中文译文,深入浅出地介绍了深度学习的基本原理,核心优势和未来展望。

2017-03-13

手写识别的训练数据

MNIST训练数据

2017-03-10

俄罗斯方块游戏开发

俄罗斯方块游戏开发培训里的可执行文件,让大家可以查看相关的结果。以便是否参加培训。

2016-11-30

duilib界面库20161116

更新为VC2015编译的duilib,持续重构代码,使用最新的C++14的语法。

2016-11-16

duilib界面库20161017

duilib 界面库

2016-10-17

duilib界面库

duilib界面库,长期维护的界面库,在WIN10和VS2012上编译和开发、测试通过。

2016-10-10

国产8051模拟器

一款国产的8051模拟器(全部源代码) 本软件是一款8051模拟器,他的特点是可以模拟多处理器平台,在简单的多工作区间的界面上可以很方便的模拟8051处理器, 最重要的是这个单片机系统可以完全由你自己订制,你甚至可以随意创建自己的多单片机系统,什么SMP 基于串行总线的分布式系统,集群式系统,只要你能想到的,都可以办到,充分发挥你的想象力。现在1.0版本已经基本体现出了这种思想,在以后的版本中将使这一特性变的 更加强大!

2016-09-10

mysql开发管理工具

mysql数据库的开发管理工具。

2016-07-12

mysql-5.5.50-64

windows下的64位MYSQL的版本。

2016-07-10

python-3.4.4

python 3.4的32位的windows版本

2016-07-01

tinyxml2配套源码

在软件开发过程中,为了使软件有灵活的配置,特别像界面这样的配置,同时为了减轻重复开发的任务,需要把客户的个性化需求可以通过配置文件来修改,比如像界面的颜色配置,就可通过配置文件来修改,这时就可以采用XML文件来保存和修改这些参数配置。在不同软件之间进行通讯时,也可以采用XML协议来进行数据交换,特别像WEB服务的调用时,采用传送XML格式是基本的数据交换方式。基于这些任务的需求,需要软件开发人员会在C++里使用xml格式。

2016-06-27

protoc2.5执行文件

protoc执行文件

2016-06-24

protobuf 2.5

protobuf 2.5库代码和工具

2016-06-24

selenium的浏览器驱动

目前有很多的银行网站,还是以IE为标准的浏览器,因此这里主要采用IE为测试的例子,在这里可以下载不同版本的浏览器驱动,可以是32位的,也可以是64位的,根据自己的需要下载不同的版本。在本文章里,下载的是2.35.3版本:IEDriverServer.exe,把它放在目录f:\temp\里面。

2016-06-14

WIX制作C#应用程序安装包

WIX制作C#应用程序安装包

2016-05-26

开源鸿蒙4.0不能进入桌面的补丁

系统启动后进入不到桌面 当前系统有 bug,当出现此种问题时,需要执行 killall com.ohos.launcher。 里面的hap文件替换applications\standard\hap\下的同名文件。 目录 oh/applications/standard/hap

2024-03-17

开源鸿蒙 4.0 RK3566开发板配置

开源鸿蒙 4.0 RK3566开发板配置 https://mysoft.blog.csdn.net/article/details/136779805

2024-03-17

使用WeifenLuo.WinFormsUI.Docking的简单例子

使用WeifenLuo.WinFormsUI.Docking的简单例子,演示了简单地使用这个窗口布局库。

2021-12-10

hui_test_form.rar

H-ui.admin_v3.1.3.1的学习和测试例子,前端代码的经典。

2021-08-17

python_example.rar

pybind11的安装和编译的例子,可以快速地生成安装包。

2021-06-24

Mysql_20210615_1.rar

演示访问Mysql库的C++类库QTL

2021-06-15

TestSel1.rar

爬虫日记(28):scrapy使用中间件调用浏览器 相关代码

2021-03-29

ItemDemo_ua.rar

爬虫日记(25):Scrapy 中设置随机 User-Agent 二 的配套代码

2021-03-26

爬虫日记 Imgfn1.rar

爬虫日记(23):用scrapy快速地爬取蜂鸟网图片 相关的项目代码

2021-03-24

ImgDemo1.rar

爬虫日记(22):最简单地抓取图片,仅5行代码 相关配套代码。

2021-03-23

ItemDemo3.rar

爬虫日记(21):使用Pipeline模块写入文件二 的配套代码。

2021-03-23

ItemDemo2.rar

爬虫日记(20):使用Pipeline模块写入文件 的例子

2021-03-22

ItemDemo.rar

实例使用Item对象,适用初学者,《爬虫日记》配套源码。

2021-03-21

svm_hog_data.rar

使用到LineSVC里进行机器学习的训练数据,用来训练手写识别。 配套专栏文章使用,https://blog.csdn.net/caimouse/article/details/104599920。

2020-03-02

实现numpy的C++库扩展

使用C++来扩展numpy里的数据计算,这时就需要使用numpy的扩展库功能了,下面就来提供一个使用C++编写numpy扩展库的模板,这样大家就要减少很多弯路,减少跌入坑里的成本。这个扩展库的模板是从mahotas库里抽取出来的,经过最大化的简化,这样更加容易理解,更方便学习。

2019-11-24

STM32F407VET6工程模板

玩转STM32里文章配置的代码,这里学习的第一个工程代码,可以作为后继开发的模板工程。

2019-03-14

python web py入门配套源代码

python web py入门- 实现论坛,开发技术:后端采用Python+web.py+MySQL,前端采用HTML+CSS+JavaScript+jQuery+RequireJS。

2018-02-23

webpy演示例子1

webpy演示例子1, 用于配套文章相关资源。python web py入门(9)- 论坛首页的模板中模板 前面已经提到一个模板中可以套用另外一个模板,现在就来看看这个论坛基本布局模板是怎么样的?

2018-02-21

胶囊模型的代码

胶囊模型的代码在以下论文中使用: “Dynamic Routing between Capsules” by Sara Sabour, Nickolas Frosst, Geoffrey E. Hinton. 要求 TensorFlow ( 访问 http://www.tensorflow.org 了解如何安装和升级) NumPy (详见http://www.numpy.org/) GPU

2018-02-02

C++读写json文件

https://github.com/nlohmann/json 最好用的C++读写json库

2017-12-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除