加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

reactos操作系统实现(134)

发布时间:2020-12-15 04:59:36 所属栏目:百科 来源:网络整理
导读:文件控制块主要用来表示一个 ReactOS 打开文件的对象。下面就来仔细地分析文件控制块的结构,如下: #001 typedef struct _VFATFCB #002 { ROS 的文件头部,主要包括文件流的描述和系统使用的变量。 #003 /* FCB header required by ROS/NT */ #004 FSRTL_CO

文件控制块主要用来表示一个ReactOS打开文件的对象。下面就来仔细地分析文件控制块的结构,如下:

#001 typedef struct _VFATFCB

#002 {

ROS的文件头部,主要包括文件流的描述和系统使用的变量。

#003 /* FCB header required by ROS/NT */

#004 FSRTL_COMMON_FCB_HEADER RFCB;

指向每个文件的数据段指针。

#005 SECTION_OBJECT_POINTERS SectionObjectPointers;

#006 ERESOURCE MainResource;

#007 ERESOURCE PagingIoResource;

#008 /* end FCB header required by ROS/NT */

#009

这个目录或文件的目录入口指针。

#010 /* directory entry for this file or directory */

#011 DIR_ENTRY entry;

#012

指向属性的入口。

#013 /* Pointer to attributes in entry */

#014 PUCHAR Attributes;

#015

保存长文件名称。

#016 /* long file name,points into PathNameBuffer */

#017 UNICODE_STRING LongNameU;

#018

保存短文件名称。

#019 /* short file name */

#020 UNICODE_STRING ShortNameU;

#021

保存目录的名称。

#022 /* directory name,points into PathNameBuffer */

#023 UNICODE_STRING DirNameU;

#024

保存路径和文件名称,最大260个字节。

#025 /* path + long file name 260 max*/

#026 UNICODE_STRING PathNameU;

#027

保存路径名称。

#028 /* buffer for PathNameU */

#029 PWCHAR PathNameBuffer;

#030

保存短名称。

#031 /* buffer for ShortNameU */

#032 WCHAR ShortNameBuffer[13];

#033

文件控制块的引用计数。

#034 /* */

#035 LONG RefCount;

#036

保存这个分卷有多少个文件控制块。

#037 /* List of FCB's for this volume */

#038 LIST_ENTRY FcbListEntry;

#039

指向父文件控制块的指针。

#040 /* pointer to the parent fcb */

#041 struct _VFATFCB* parentFcb;

#042

控制块的标志保存。

#043 /* Flags for the fcb */

#044 ULONG Flags;

#045

关联这个文件控制块与文件对象。

#046 /* pointer to the file object which has initialized the fcb */

#047 PFILE_OBJECT FileObject;

#048

短文件名称的目录索引。

#049 /* Directory index for the short name entry */

#050 ULONG dirIndex;

#051

长文件名称的目录索引。

#052 /* Directory index where the long name starts */

#053 ULONG startIndex;

#054

共享访问文件对象标志。

#055 /* Share access for the file object */

#056 SHARE_ACCESS FCBShareAccess;

#057

打开文件次数计数。

#058 /* Incremented on IRP_MJ_CREATE,decremented on IRP_MJ_CLEANUP */

#059 ULONG OpenHandleCount;

#060

路径名称和长文件名称在HASH表里的位置。

#061 /* Entry into the hash table for the path + long name */

#062 HASHENTRY Hash;

#063

路径名称和短文件名称在HASH表里的位置。

#064 /* Entry into the hash table for the path + short name */

#065 HASHENTRY ShortHash;

#066

文件锁住范围。

#067 /* List of byte-range locks for this file */

#068 FILE_LOCK FileLock;

#069

保存最后读写的簇和位置。

#070 /*

#071 * Optimalization: caching of last read/write cluster+offset pair. Can't

#072 * be in VFATCCB because it must be reset everytime the allocated clusters

#073 * change.

#074 */

#075 FAST_MUTEX LastMutex;

#076 ULONG LastCluster;

#077 ULONG LastOffset;

#078} VFATFCB,*PVFATFCB;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读