reactos操作系统实现(124)

从上面的入口函数里可以看到,很多消息处理函数都是调用函数Vfatbuildrequest来处理的,具体实现代码如下:

#001 NTSTATUS NTAPI Vfatbuildrequest (

#002 IN PDEVICE_OBJECT DeviceObject,

#003 IN PIRP Irp)

#004 {

#005 NTSTATUS Status;

#006 PVFAT_IRP_CONTEXT IrpContext;

#007

#008 DPRINT ("Vfatbuildrequest (DeviceObject %p,Irp %p)/n",DeviceObject,Irp);

#009

#010 ASSERT(DeviceObject);

#011 ASSERT(Irp);

分配IRP的上下文。

#012 IrpContext = VfatAllocateIrpContext(DeviceObject,Irp);

#013 if (IrpContext == NULL)

#014 {

如果分配不成功,就返回处理IRP出错。

#015 Status = STATUS_INSUFFICIENT_RESOURCES;

#016 Irp->IoStatus.Status = Status;

#017 IoCompleteRequest (Irp,IO_NO_INCREMENT);

#018 }

#019 else

#020 {

通过临界区来加锁对文件系统访问。

#021 FsRtlEnterFileSystem();

调用函数VfatdispatchRequest来分发到不同的函数处理不同的功能

#022 Status = VfatdispatchRequest (IrpContext);

#023 FsRtlExitFileSystem();

#024 }

#025 return Status;

#026}

相关文章

一、前言 在组件方面react和Vue一样的,核心思想玩的就是组件...
前言: 前段时间学习完react后,刚好就接到公司一个react项目...
前言: 最近收到组长通知我们项目组后面新开的项目准备统一技...
react 中的高阶组件主要是对于 hooks 之前的类组件来说的,如...
我们上一节了解了组件的更新机制,但是只是停留在表层上,例...
我们上一节了解了 react 的虚拟 dom 的格式,如何把虚拟 dom...