US2013080485A1PendingUtilityA1

Quick filename lookup using name hash

53
Assignee: MICROSOFT CORPPriority: Dec 17, 2004Filed: Nov 26, 2012Published: Mar 28, 2013
Est. expiryDec 17, 2024(expired)· nominal 20-yr term from priority
G06F 9/4403G06F 16/22G06F 16/166G06F 16/152G06F 16/137G06F 11/1417G06F 17/30312
53
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A method of updating a file record on at least one of a first one or more computer readable storage media including writing at least three contiguous DirectoryEntry data structures corresponding to a directory entry set, the directory entry set corresponding to a file, the writing occurring to the at least one of a first one or more computer readable storage media.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . One or more computer readable storage media having computer executable instructions that, when executed on at least one processor, configure the at least one processor to perform a method of updating a file record on at least one of a first one or more computer readable storage media, the method comprising:
 writing at least three contiguous DirectoryEntry data structures corresponding to a directory entry set, the directory entry set corresponding to a file, the writing occurring to the at least one of a first one or more computer readable storage media,   a first of the at least three DirectoryEntry data structures is a File DirectoryEntry data structure;   a second of the at least three DirectoryEntry data structures is a Stream Extension DirectoryEntry data structure, the Stream Extension DirectoryEntry data structure contiguous to and immediately following the File DirectoryEntry data structure; and   the third of the at least three DirectoryEntry data structures is a first File Name Extension DirectoryEntry data structure, the File Name Extension DirectoryEntry data structure contiguous to and immediately following the Stream Extension DirectoryEntry data structure.   
     
     
         2 . The one or more computer readable storage media of  claim 1 , further comprising:
 an EntryType field, the EntryType comprising:
 an InUse field at bit offset seven and one bit in length; 
 a TypeCategory field at bit offset six and one bit in length; 
 a TypeImportance field at bit offset five and one bit in length; and 
 a TypeCode field at bit offset zero and one bit in length; 
   the File DirectoryEnty data structure comprising:
 a first EntryType field at byte offset zero, one byte in length, set to the value 85h, indicating the TypeCode field is set to the value five, the TypeImportance field is set to the value zero, the TypeCategory field is set to the value zero, and the InUse field is set to the value one; 
 a SecondaryCount field at byte offset one, one byte in length, having a value in the range one to 255 inclusive, the value corresponding to the number of the at least three DirectoryEntry data structures minus one; and 
 a SetChecksum field at byte offset two, two bytes in length, and corresponding to a checksum of the at least three DirectoryEntry data structures excluding the SetChecksum field; 
   the Stream Extension DirectoryEntry data structure comprising:
 a second EntryType field at byte offset zero, one byte in length, and set to the value COh, indicating the TypeCode field is set to the value zero, the TypeImportance field is set to the value zero, the TypeCategory field is set to the value one, and the InUse field is set to the value one; 
 a NameLength field at byte offset three and one byte in length; and 
 a NameHash field at byte offset four and two bytes in length; 
   the first File Name Extension DirectoryEntry data structure comprising:
 a third EntryType field at byte offset zero, one byte in length, and set to the value Cl h, indicating the TypeCode field is set to the value one, the TypeImportance field is set to the value zero, the TypeCategory field is set to the value one, and the InUse field is set to the value one; and 
 a FileName field at byte offset two and 30 bytes in length; 
   the NameLength field in the Stream Extension DirectoryEntry indicating the number of characters of a Unicode string in the FileName fields of a one or more contiguous File Name Extension DirectoryEntry data structures, not including any trailing NULL, the first of the one or more contiguous File Name Extension DirectoryEntry data structures being the first NameExtension DirectoryEntry; and   the value in the NameHash field corresponding to a hash calculated based on the Unicode string in the NameLength field.   
     
     
         3 . The one or more computer readable storage media of  claim 1 , the File DirectoryEntry data structure further comprising:
 a SetChecksum field at byte offset two, two bytes in length, and corresponding to a checksum of the at least three DirectoryEntry data structures excluding the SetChecksum field.   
     
     
         4 . The one or more computer readable storage media of  claim 1 , further comprising:
 reading the at least three contiguous DirectoryEntry data structures, the File DirectoryEntry data structure further comprising a SetChecksum field, the SetChecksum field at byte offset two and two bytes in length within the File DirectoryEntry data structure;   calculating a checksum corresponding to all bytes of the at least three contiguous DirectoryEntry data structures, except for the two bytes of the SetChecksum field;   updating the SetChecksum field in the File DirectoryEntry data structure after writing at least the File DirectoryEntry data structure.   
     
     
         5 . In a computing device, a method
 of updating a file record on at least one of a first one or more computer readable storage media, the method comprising:
 writing at least three contiguous DirectoryEntry data structures corresponding to a directory entry set, the directory entry set corresponding to a file, the writing occurring to the at least one of a first one or more computer readable storage media, 
 a first of the at least three DirectoryEntry data structures is a File DirectoryEntry data structure; 
 a second of the at least three DirectoryEntry data structures is a Stream Extension DirectoryEntry data structure, the Stream Extension DirectoryEntry data structure contiguous to and immediately following the File DirectoryEntry data structure; and 
 the third of the at least three DirectoryEntry data structures is a first File Name Extension DirectoryEntry data structure, the File Name Extension DirectoryEntry data structure contiguous to and immediately following the Stream Extension DirectoryEntry data structure. 
   
     
     
         6 . The method of  claim 5 , further comprising:
 an EntryType field, the EntryType field comprising:
 an InUse field at bit offset seven and one bit in length; 
 a TypeCategory field at bit offset six and one bit in length; 
 a TypeImportance field at bit offset five and one bit in length; and 
 a TypeCode field at bit offset zero and one bit in length; 
   the File DirectoryEnty data structure comprising:
 a first EntryType field at byte offset zero, one byte in length, set to the value 85h, indicating the TypeCode field is set to the value five, the TypeImportance field is set to the value zero, the TypeCategory field is set to the value zero, and the InUse field is set to the value one; 
 a SecondaryCount field at byte offset one, one byte in length, having a value in the range one to 255 inclusive, the value corresponding to the number of the at least three DirectoryEntry data structures minus one; and 
 a SetChecksum field at byte offset two, two bytes in length, and corresponding to a checksum of the at least three DirectoryEntry data structures excluding the SetChecksum field; 
   the Stream Extension DirectoryEntry data structure comprising:
 a second EntryType field at byte offset zero, one byte in length, and set to the value COh, indicating the TypeCode field is set to the value zero, the TypeImportance field is set to the value zero, the TypeCategory field is set to the value one, and the InUse field is set to the value one; 
 a NameLength field at byte offset three and one byte in length; and 
 a NameHash field at byte offset four and two bytes in length; 
   the first File Name Extension DirectoryEntry data structure comprising:
 a third EntryType field at byte offset zero, one byte in length, and set to the value Cl h, indicating the TypeCode field is set to the value one, the TypeImportance field is set to the value zero, the TypeCategory field is set to the value one, and the InUse field is set to the value one; and 
 a FileName field at byte offset two and 30 bytes in length; 
   the NameLength field in the Stream Extension DirectoryEntry indicating the number of characters of a Unicode string in the FileName fields of a one or more contiguous File Name Extension DirectoryEntry data structures, not including any trailing NULL, the first of the one or more contiguous File Name Extension DirectoryEntry data structures being the first NameExtension DirectoryEntry; and   the value in the NameHash field corresponding to a hash calculated based on the Unicode string in the NameLength field.   
     
     
         7 . The method of  claim 5 , the File DirectoryEntry data structure further comprising:
 a SetChecksum field at byte offset two, two bytes in length, and corresponding to a checksum of the at least three DirectoryEntry data structures excluding the SetChecksum field.   
     
     
         8 . The method of  claim 5 , further comprising:
 reading the at least three contiguous DirectoryEntry data structures, the File DirectoryEntry data structure further comprising a SetChecksum field, the SetChecksum field at byte offset two and two bytes in length within the File DirectoryEntry data structure;   calculating a checksum corresponding to all bytes of the at least three contiguous DirectoryEntry data structures, except for the two bytes of the SetChecksum field;   updating the SetChecksum field in the File DirectoryEntry data structure after writing at least the File DirectoryEntry data structure.   
     
     
         9 . A computing device having a memory that stores computer executable instructions and a processor for executing the instructions, the instructions, when executed by the processor, causing the device to perform operations for updating a file record on at least one of a first one or more computer readable storage media, the operations comprising:
 writing at least three contiguous DirectoryEntry data structures corresponding to a directory entry set, the directory entry set corresponding to a file, the writing occurring to the at least one of a first one or more computer readable storage media,   a first of the at least three DirectoryEntry data structures is a File DirectoryEntry data structure;   a second of the at least three DirectoryEntry data structures is a Stream Extension DirectoryEntry data structure, the Stream Extension DirectoryEntry data structure contiguous to and immediately following the File DirectoryEntry data structure; and   the third of the at least three DirectoryEntry data structures is a first File Name Extension DirectoryEntry data structure, the File Name Extension DirectoryEntry data structure contiguous to and immediately following the Stream Extension DirectoryEntry data structure.   
     
     
         10 . The device of  claim 9 , further comprising:
 an EntryType field, the EntryType field comprising:
 an InUse field at bit offset seven and one bit in length; 
 a TypeCategory field at bit offset six and one bit in length; 
 a TypeImportance field at bit offset five and one bit in length; and 
 a TypeCode field at bit offset zero and one bit in length; 
   the File DirectoryEnty data structure comprising:
 a first EntryType field at byte offset zero, one byte in length, set to the value 85h, indicating the TypeCode field is set to the value five, the TypeImportance field is set to the value zero, the TypeCategory field is set to the value zero, and the InUse field is set to the value one; 
 a SecondaryCount field at byte offset one, one byte in length, having a value in the range one to 255 inclusive, the value corresponding to the number of the at least three DirectoryEntry data structures minus one; and 
 a SetChecksum field at byte offset two, two bytes in length, and corresponding to a checksum of the at least three DirectoryEntry data structures excluding the SetChecksum field; 
   the Stream Extension DirectoryEntry data structure comprising:
 a second EntryType field at byte offset zero, one byte in length, and set to the value COh, indicating the TypeCode field is set to the value zero, the TypeImportance field is set to the value zero, the TypeCategory field is set to the value one, and the InUse field is set to the value one; 
 a NameLength field at byte offset three and one byte in length; and 
 a NameHash field at byte offset four and two bytes in length; 
   the first File Name Extension DirectoryEntry data structure comprising:
 a third EntryType field at byte offset zero, one byte in length, and set to the value Cl h, indicating the TypeCode field is set to the value one, the TypeImportance field is set to the value zero, the TypeCategory field is set to the value one, and the InUse field is set to the value one; and 
 a FileName field at byte offset two and 30 bytes in length; 
   the NameLength field in the Stream Extension DirectoryEntry indicating the number of characters of a Unicode string in the FileName fields of a one or more contiguous File Name Extension DirectoryEntry data structures, not including any trailing NULL, the first of the one or more contiguous File Name Extension DirectoryEntry data structures being the first NameExtension DirectoryEntry; and   the value in the NameHash field corresponding to a hash calculated based on the Unicode string in the NameLength field.   
     
     
         11 . The device of  claim 9 , the File DirectoryEntry data structure further comprising:
 a SetChecksum field at byte offset two, two bytes in length, and corresponding to a checksum of the at least three DirectoryEntry data structures excluding the SetChecksum field.   
     
     
         12 . The device of  claim 9 , further comprising:
 reading the at least three contiguous DirectoryEntry data structures, the File DirectoryEntry data structure further comprising a SetChecksum field, the SetChecksum field at byte offset two and two bytes in length within the File DirectoryEntry data structure;   calculating a checksum corresponding to all bytes of the at least three contiguous DirectoryEntry data structures, except for the two bytes of the SetChecksum field;   updating the SetChecksum field in the File DirectoryEntry data structure after writing at least the File DirectoryEntry data structure.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.