自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

reactos操作系统实现(121)

CreatePartitionDeviceObjects函数是通过分析MBR扇区的数据,然后来创建所有分区对象。具体实现代码如下: #001 NTSTATUS #002 NTAPI #003 CreatePartitionDeviceObjects( #004 IN PDEVICE_OBJECT PhysicalDeviceObject, #005 IN PUNICODE_STRIN...

2009-10-31 22:10:00 62

reactos操作系统实现(120)

CreateDiskDeviceObject函数主要就是为了物理设备创建磁盘对象,并且查找磁盘上每个分区和创建相应的对象。具体实现代码如下: #001 NTSTATUS #002 NTAPI #003 CreateDiskDeviceObject( #004 IN PDRIVER_OBJECT DriverObject, #005 IN PUNICODE_STRING Registr...

2009-10-30 22:40:00 64

reactos操作系统实现(119)

前介绍了初始化函数ScsiClassInitialize,那么在这个函数里使用下面的语句来查找SCSI的磁盘,如下: if (InitializationData->ClassFindDevices(DriverObject, Argument2, InitializationData,portDeviceObject, portNumber)) 其实这里的函数Initializati...

2009-10-29 22:33:00 50

reactos操作系统实现(118)

ScsiClassInitialize函数初始化驱动程序对象,主要是找到合适的端口驱动程序,并设置它来处理磁盘的命令,具体实现代码如下: #001 ULONG #002 NTAPI #003 ScsiClassInitialize( #004 IN PVOID Argument1, #005 IN PVOID Argument2, #006 IN PCLASS_INIT_DATA In...

2009-10-28 21:42:00 59

reactos操作系统实现(117)

在Reactos里,磁盘类的驱动程序是由disk.sys实现的。从文件系统上输出和读取的调用,就是需要通过这个驱动程序来实现,在这个驱动程序下面就是PCIIDE和ATAPI的驱动程序了,后面这些驱动程序,在前面已经分析过,现在来学习disk类驱动程序。 10.4.1 DriverEntry入口函数 分析这个程序还是从这个驱动程序的入口函数开始,这个函数是初始化SCSI的硬盘类驱动程序...

2009-10-27 21:36:00 54

reactos操作系统实现(116)

PciIdeXFdoStartDevice函数是用来处理即插即用的启动设备消息,主要设置了DMA操作和保存设备端口的基地址,这里就是启动PCIIDE的物理设备,具体实现代码如下: #001 static NTSTATUS #002 PciIdeXFdoStartDevice( #003 IN PDEVICE_OBJECT DeviceObject, #004 IN PIRP Ir...

2009-10-26 22:05:00 62

reactos操作系统实现(115)

PciIdeXFdoPnpDispatch函数主要处理PCIIDE即插即用的消息处理。具体实现代码如下: #001 NTSTATUS NTAPI #002 PciIdeXFdoPnpDispatch( #003 IN PDEVICE_OBJECT DeviceObject, #004 IN PIRP Irp) #005 { #006 ULONG MinorFunction;...

2009-10-25 14:05:00 57

reactos操作系统实现(114)

PciIdeXAddDevice函数是用来添加PCIIDEX的设备,设置一个功能设备,并读取PCI总线的配置参数。具体实现代码如下: #001 NTSTATUS NTAPI #002 PciIdeXAddDevice( #003 IN PDRIVER_OBJECT DriverObject, #004 IN PDEVICE_OBJECT Pdo) #005 { #006 P...

2009-10-24 21:08:00 82

reactos操作系统实现(113)

下面来分析PCIIDE和PCIIDEX驱动程序,这两个都是PCI的IDE总线驱动程序。 先从PCIIDE的入口函数开始,具体实现代码如下: #001 NTSTATUS NTAPI #002 DriverEntry( #003 IN PDRIVER_OBJECT DriverObject, #004 IN PUNICODE_STRING RegistryPath) #005...

2009-10-23 21:53:00 59

reactos操作系统实现(112)

IdeReadWrite函数主要实现了IDE设备的读和写命令发送。具体实现函数如下: #001 ULONG #002 NTAPI #003 IdeReadWrite( #004 IN PVOID HwDeviceExtension, #005 IN PSCSI_REQUEST_BLOCK Srb #006 ) #007 #008 /*++ #009 #010 Ro...

2009-10-22 22:01:00 64

reactos操作系统实现(111)

IdeSendSmartCommand函数主要发送IDE的命令。具体实现代码如下: #001 ULONG #002 NTAPI #003 IdeSendSmartCommand( #004 IN PVOID HwDeviceExtension, #005 IN PSCSI_REQUEST_BLOCK Srb #006 ) #007 #008 /*++ #009 #...

2009-10-21 20:59:00 69

reactos操作系统实现(110)

AtapiStartIo函数主要处理同步的IO请求包。具代的实现代码如下: #001 BOOLEAN #002 NTAPI #003 AtapiStartIo( #004 IN PVOID HwDeviceExtension, #005 IN PSCSI_REQUEST_BLOCK Srb #006 ) #007 #008 /*++ #009 #010 Routi...

2009-10-20 22:02:00 68

reactos操作系统实现(109)

AtapiInterrupt函数是实现ATAPI的中断功能,主要根据SRB来判断是读取数据还是写入数据,然后对IDE设备读取或写入数据,还需要处理很多出错的情况。具体实现代码如下: #001 BOOLEAN #002 NTAPI #003 AtapiInterrupt( #004 IN PVOID HwDeviceExtension #005 ) #006 #007 /*+...

2009-10-19 22:11:00 68

reactos操作系统实现(108)

AtapiHwInitialize函数初始化不是ATAPT设备,设置它支持多块传送。接着判断那些设备是CD-ROM设备,还清除忙状态。具体实现代码如下: #001 BOOLEAN #002 NTAPI #003 AtapiHwInitialize( #004 IN PVOID HwDeviceExtension #005 ) #006 #007 /*++ #008 #...

2009-10-18 11:04:00 62

reactos操作系统实现(107)

IssueIdentify函数主要是发送IDENTIFY命令给一个ATAPI设备,并且获取这个设备相关信息,比如磁头的个数。 #001 BOOLEAN #002 NTAPI #003 IssueIdentify( #004 IN PVOID HwDeviceExtension, #005 IN ULONG DeviceNumber, #006 IN ULONG Channel,...

2009-10-17 22:46:00 68

reactos操作系统实现(106)

FindDevices函数主要用来查找ATAPI控制器,并且获取磁盘的参数。如果找到IDE的设备就返回TRUE,否则返回FALSE。其实是通过ATAPI的标志和IssueIdentify命令来判断IDE设备。 #001 BOOLEAN #002 NTAPI #003 FindDevices( #004 IN PVOID HwDeviceExtension, #005 IN BOO...

2009-10-16 21:41:00 68

reactos操作系统实现(105)

AtapiFindController函数主要用来查找ATAPI控制器,也就是IDE控制器。同时收集IDE控制器相关配置信息,比如磁盘的访问方式。 #001 ULONG #002 NTAPI #003 AtapiFindController( #004 IN PVOID HwDeviceExtension, #005 IN PVOID Context, #006 IN PVOI...

2009-10-15 22:15:00 67

reactos操作系统实现(104)

AtapiFindPCIController函数是用来发现PCI总线上所有的IDE控制器,并发现相关的IDE设备。具体实现代码如下: #001 ULONG #002 NTAPI #003 AtapiFindPCIController( #004 IN PVOID HwDeviceExtension, #005 IN PVOID Context, #006 IN PVOID Bu...

2009-10-14 21:17:00 84

reactos操作系统实现(103)

ScsiPortInitialize函数用来初始化总线上设备,并查找每个总线上所有出现的设备,主要是SCSI相关的设备,当然这里SCSI设备是包括IDE控制器。找到每个设备之后,就会创建这个设备的设备对象,并且设置每个设备的参数、中断相关函数。 #001 ULONG NTAPI #002 ScsiPortInitialize(IN PVOID Argument1, #003 I...

2009-10-13 21:44:00 70

reactos操作系统实现(102)

ATAPI驱动程序的源码在目录drivers/storage/ide/atapi里,其实ATAPI是一个IDE的小端口驱动程序,主要初始化不同总线上的ATAPI设备,其中最重要的就是从PCI总线里查找到IDE控制器。下面来分析这个驱动程序的入口函数: #001 ULONG #002 NTAPI #003 DriverEntry( #004 IN PVOID DriverObject,...

2009-10-12 21:52:00 98

reactos操作系统实现(101)

这里主要来分析ATAPI驱动程序,那么就要先了解ATAPI的相关知识了。 1. AT ATTACHMENT (ATA):ATA接口是个人电脑上最具有实力的存储接口,ATA接口早先被广泛应用于IBM及其兼容机,它被定义为标准的硬盘接口。 2. ATA-1:ATA硬盘接口的第一代标准ANSI X3.279-1994,也就是早期的IDE接口。 3. ATA-2:ATA硬盘接口的...

2009-10-11 22:28:00 87

reactos操作系统实现(100)

在分析文件所有操作之前,先来看看文件操作的基来流程,与那些系统是相关联的。如下图所示: 应用程序先发起文件的操作,接着就调用到IO管理器的内核函数,IO管理器函数就会生成IRP请求包,并把IRP请求包传送给文件系统驱动程序,接着文件系统把请求生成SRB请求包发送给类驱动程序。最后类驱动程序把SRB请求包发送给PCI驱动程序,再转给ATAPI的驱动程序来访问IDE的硬盘。下面就ATAP...

2009-10-10 21:33:00 83

miniport, port driver,disk.sys 之间的关系(转)

miniport, port driver,disk.sys 之间关系 驱动程序由CLASS DRIVER,PORT DRIVER,MINIPORT,三部分组成,从层次上来说,LCASS DRIVER是针对几大类设备的驱动,比如存储设备驱动,就可以通过一个CLASS DRIVER来统一管理,完成一些这类设备共有的操作,主要是与设备无关的操作.PORT DRIVER从层次上来说,是在C...

2009-10-06 11:42:00 234

空空如也

空空如也

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

TA关注的人

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