手机版
热门标签
站点地图
我要投稿
广告合作
联系我们
搜 索
广告位招租
广告位招租
切换导航
首页
人工智能
编程教程
编程导航
编程百科
编程问答
编程博文
编程实例
硬件设备
网络运营
软件教程
移动数码
办公软件
操作系统
网络运维
技术频道
▸ 编程语言
▸ 前端开发
▸ 移动开发
▸ 开发工具
▸ 程序设计
▸ 行业应用
▸ CMS系统
▸ 服务器
▸ 数据库
公众号推荐
微信公众号搜
"智元新知"
关注
微信扫一扫可直接关注哦!
操作系统
操作系统专题提供操作系统的最新资讯内容,帮你更好的了解操作系统。
reactos操作系统实现(125)
VfatCreate函数创建或者打开一个文件。具体实现代码如下: #001 NTSTATUS #002 VfatCreate (PVFAT_IRP_CONTEXT IrpContext) #003 /* #004 * FUNCTION: Create or open a file #005 */ #006 { #007 NTSTATUS Status; #008 #00
作者:佚名 时间:2020-05-20
reactos操作系统实现(126)
VfatCreateFile函数主要用来创建或者打开一个文件,具体实现如下: #001 static NTSTATUS #002 VfatCreateFile ( PDEVICE_OBJECT DeviceObject, PIRP Irp ) #003 /* #004 * FUNCTION: Create or open a file #005 */ #006 { #007
作者:佚名 时间:2020-05-20
reactos操作系统实现(127)
从上面的代码里可以看到调用函数VfatAddEntry来添加文件或目录的入口,其实现的代码如下: #001 NTSTATUS #002 VfatAddEntry( #003 IN PDEVICE_EXTENSION DeviceExt, #004 IN PUNICODE_STRING NameU, #005 IN PVFATFCB *Fcb, #006
作者:佚名 时间:2020-05-20
reactos操作系统实现(128)
VfatOpenFile函数主要用来打开FAT的文件。具体实现代码如下: #001 static #002 NTSTATUS #003 VfatOpenFile ( #004 PDEVICE_EXTENSION DeviceExt, #005 PUNICODE_STRING PathNameU, #006 PFILE_OBJECT FileObject,
作者:佚名 时间:2020-05-20
reactos操作系统实现(129)
功能驱动将构造请求包,就可以发送到底层总线驱动上。因此需要创建一个IRP,这就需要用IoBuildDeviceIoControlRequest创建一个IO控制码的IRP,用IoCallDriver将URB发送到底层总线驱动上。由于上层驱动无法知道底层驱动是同步还是异步完成的,因此需要做一个判断。if语句判断当异步完成IRP时,用事件等待总线驱动完成这个IRP。 #001 NTSTATUS #0
作者:佚名 时间:2020-05-20
reactos操作系统实现(130)
vfatMakeRootFCB函数是用来创建FAT文件系统的根目录,实现代码如下: #001 PVFATFCB #002 vfatMakeRootFCB(PDEVICE_EXTENSION pVCB) #003 { #004 PVFATFCB FCB; #005 ULONG FirstCluster, CurrentCluster, Size = 0; #006
作者:佚名 时间:2020-05-20
reactos操作系统实现(131)
VfatRead函数用来读取FAT文件系统里的文件数据,如果缓冲区里有数据就直接从缓冲区里读取,否则就从磁盘上读取。具体实现如下: #001 NTSTATUS #002 VfatRead(PVFAT_IRP_CONTEXT IrpContext) #003 { #004 NTSTATUS Status; #005 PVFATFCB Fcb; #006 ULONG L
作者:佚名 时间:2020-05-20
reactos操作系统实现(132)
VfatReadFileData函数主要用来从磁盘上读取文件数据,具体实现代码如下: #001 static NTSTATUS #002 VfatReadFileData (PVFAT_IRP_CONTEXT IrpContext, #003 ULONG Length, #004 LARGE_INTEGER ReadOffset, #
作者:佚名 时间:2020-05-20
reactos操作系统实现(133)
VfatReadDiskPartial函数主要用来构造一个IRP给底层驱动程序去读取数据返回。具体实现代码如下: #001 NTSTATUS #002 VfatReadDiskPartial (IN PVFAT_IRP_CONTEXT IrpContext, #003 IN PLARGE_INTEGER ReadOffset, #004 I
作者:佚名 时间:2020-05-20
reactos操作系统实现(134)
文件控制块主要用来表示一个ReactOS打开文件的对象。下面就来仔细地分析文件控制块的结构,如下: #001 typedef struct _VFATFCB #002 { ROS的文件头部,主要包括文件流的描述和系统使用的变量。 #003 /* FCB header required by ROS/NT */ #004 FSRTL_COMMON_FCB_HEADER RFCB
作者:佚名 时间:2020-05-20
reactos操作系统实现(135)
当从IO管理器里调用函数IopParseDevice来分析设备时,就可以找到相应的磁盘设备,并在这个函数里调用函数IopCheckVpbMounted来检查这个文件系统是否加载,如果没有加载,就会调用函数IopMountVolume来加载文件卷,那么在这个函数里就会构造一个IRP发送给文件系统驱动程序,驱动程序就收到主功能码为IRP_MJ_FILE_SYSTEM_CONTROL和次功能码为IRP
作者:佚名 时间:2020-05-20
reactos操作系统实现(136)
VfatMount函数主要用来安装FAT文件卷,具体实现代码如下: #001 static NTSTATUS #002 VfatMount (PVFAT_IRP_CONTEXT IrpContext) #003 /* #004 * FUNCTION: Mount the filesystem #005 */ #006 { #007 PDEVICE_OBJECT Devic
作者:佚名 时间:2020-05-20
reactos操作系统实现(137)
VfatHasFileSystem函数主要用来读取FAT文件系统信息,并且判断这个磁盘卷是否为FAT文件系统,具体实现如下: #001 static NTSTATUS #002 VfatHasFileSystem(PDEVICE_OBJECT DeviceToMount, #003 PBOOLEAN RecognizedFS, #004
作者:佚名 时间:2020-05-20
reactos操作系统实现(138)
在FAT里,需要从目录入口项里找到文件的首簇数,下面这段代码就是实现这样的功能,如下: #001 ULONG #002 vfatDirEntryGetFirstCluster (PDEVICE_EXTENSION pDeviceExt, #003 PDIR_ENTRY pFatDirEntry) #004 { #005
作者:佚名 时间:2020-05-20
reactos操作系统实现(139)
当用户删除文件时,就会通过ReactOS的API调用IO管理器函数,然后创建IRP包发送到文件系统驱动程序来,然后就调用下面函数来把文件分配的簇从FAT分配表时删除。具体实现的代码如下: #001 static NTSTATUS #002 FATDelEntry( #003 IN PDEVICE_EXTENSION DeviceExt, #004 IN PVFATFCB
作者:佚名 时间:2020-05-20
reactos操作系统实现(140)
在创建文件成功后,然后就往文件里写入数据,而写入数据说明就需要文件系统给文件分配储存空间,以便保存这些数据到磁盘里,下面就来分析分配文件大小的函数,如下: #001 NTSTATUS #002 VfatSetAllocationSizeInformation(PFILE_OBJECT FileObject, #003 PVFATFCB Fcb, #004
作者:佚名 时间:2020-05-20
reactos操作系统实现(141)
在操作系统启动的早期阶段,由于很多基本的功能没有初始化(比如IO管理器都没有初始化),因此完整和功能强大的显示驱动程序是不可能运行的,那么就需要在这个阶段写一个比较简单的VGA显示驱动程序给内核引导时使用,这个驱动程序就是bootvid.dll。 先来分析在内核里调用初始化的位置,具体如下: #001 VOID #002 NTAPI #003 Phase1InitializationD
作者:佚名 时间:2020-05-20
reactos操作系统实现(142)
VidInitialize函数主要进行VGA简单视频显示模式初始化。具体实现代码如下: #001 BOOLEAN #002 NTAPI #003 VidInitialize(IN BOOLEAN SetMode) #004 { #005 ULONG Context = 0; #006 PHYSICAL_ADDRESS TranslatedAddress; #007
作者:佚名 时间:2020-05-20
reactos操作系统实现(143)
VgaIsPresent函数通过读取图形模式的索引寄存器和数据寄存器来检查VGA显示卡是否安装,实现代码如下: #001 BOOLEAN #002 NTAPI #003 VgaIsPresent(VOID) #004 { #005 UCHAR VgaReg, VgaReg2, VgaReg3; #006 UCHAR SeqReg, SeqReg2; #007
作者:佚名 时间:2020-05-20
reactos操作系统实现(144)
当操作系统引导过程中,需要输出一些信息给用户来查看,那么就需要这个简单的VGA驱动程序,可以输出字符串显示,实现这个功能的函数就是VidDisplayString函数,具体实现的代码如下: #001 VOID #002 NTAPI #003 VidDisplayString(PUCHAR String) #004 { #005 ULONG TopDelta = 14; #006
作者:佚名 时间:2020-05-20
上一页
33
34
35
36
37
38
39
40
下一页
小编推荐
苹果市值2025年有望达4万亿美元
• iPadOS 18来了,iPad现在真的有“生产力
• 谷歌日本整活:打造莫比乌斯外形键盘 正
• 天玑9400核心配置曝光,OV米均已采购,
• iPad和安卓Pad有什么区别?不用这三项功
• 松下全画幅镜头便携长焦70-300mm F4.5-
• 停产Quest Pro、力推Quest 3S,Meta要让
• RTX 4080/90要说再见!消息称英伟达11月
热门标签
更多
python
JavaScript
java
HTML
PHP
reactjs
C#
Android
CSS
Node.js
sql
r
python-3.x
MysqL
jQuery
c++
pandas
Flutter
angular
IOS
django
linux
swift
typescript
路由器
JSON
路由器设置
无线路由器
h3c
华三
华三路由器设置
华三路由器
电脑软件教程
arrays
docker
软件图文教程
C
vue.js
laravel
spring-boot