06 2009 档案
摘要:IopCreateFile=>IoMountVolume=>IopMountFileSystemIopMountFileSystem构造IRP StackPtr->MajorFunction = IRP_MJ_FILE_SYSTEM_CONTROL; StackPtr->MinorFunction = IRP_MN_MOUNT_VOLUME; 然后依次查询注册过的分区驱动,...
阅读全文
摘要:make dist会将所有文件编译后,放在\dist目录下。
阅读全文
摘要:感觉IoCreateFile应该算是系统调用,它会调用ObCreateObject函数。 IoCreateFile和IoCreateDevice都会调用ObCreateObject函数。在中IoCreateFile中, Status = ObCreateObject(FileHandle, DesiredAccess, ObjectAttributes, IoFileObjectType, (PV...
阅读全文
摘要:http://melkov.narod.ru/misc/stl-fix/
阅读全文
摘要:在DriverEntry中,创建了一个device,并调用IoRegisterFileSystem,将它注册到文件系统类型中。每个分区类型驱动加载时候,都会调用IoRegisterFileSystem。
阅读全文
摘要:ReactOS默认的log是关闭的,在进入系统选择菜单“ReactOS (Debug)”,此时log通过串口输出。打印log可以使用DbgPrint函数。NDEBUG宏控制DBG版本中输出log。在每个module里都定义了NDEBUG宏,如果想在DBG版本里打印log就注释掉NDEBUG宏。此时DPRINT,DPRINT1等输出log的宏被enable。对于freeldr,也是用DbgPrint函数。在debug.c里修改下列宏,可以控制是否在DBG版本里打印log://#define DEBUG_ALL//#define DEBUG_INIFILE//#define DEBUG_REACT
阅读全文
摘要:在atapi.sys的DriverEntry里会调用ScsiPortInitialize。 PCI中有8个条PCI bus。在ScsiPortInitialize中对每条PCI Bus调用一次AtapiFindCompatiblePciController或AtapiFindIsaBusController,用来寻找ATAPI的Controller。如果发现HBA,则调用ScsiPortCreat...
阅读全文
摘要:#include <stdio.h>#include <windows.h>#include <winioctl.h>#include <ntddscsi.h>typedef struct _INQUIRYDATA{ UCHAR DeviceType:5; UCHAR DeviceTypeQualifier:3; UCHAR DeviceTyp...
阅读全文
摘要:ATA和ATAPI是广为使用的IDE和EIDE设备的相关标准。ATA是AT Attachment的缩写,意思是AT计算机上的附加设备(还记得IBM PC/AT吗?)。ATA可以使用户方便地在PC机上连接硬盘,但有时这样还不够。有些用户需要通过同样方便的手段连接CDROM、磁带机、MO驱动器等设备。ATAPI标准就是为了解决在IDE/EIDE接口上连接多种设备而制定的。ATAPI是AT Attach...
阅读全文
摘要:我感觉磁盘驱动是mini driver+class driver。其中class2.sys就是类驱动而disk.sys就是mini drivermini driver的DriverEntry调用NTSTATUS STDCALLDriverEntry(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath){ CLASS_I...
阅读全文
摘要:首先是在main.c中ExpInitializeExecutive函数。遍历所有加载的模块,其中有ntoskrnl、各个驱动、nls、注册表文件等。找出驱动程序,依次调用LdrInitializeBootStartDriver函数。然后调用IoCreateArcNames函数,将\reactos 变为 multi(0)disk(0)rdisk(0)partition(1)\reactos最后调用I...
阅读全文

浙公网安备 33010602011771号