+void AddToCache(PWSTR Name, DWORD Length, ULONGLONG MftId)
+{
+ PNAME_CACHE_ENTRY CacheEntry;
+
+ /* Allocate an entry big enough to store name and cache info */
+ CacheEntry = HeapAlloc(GetProcessHeap(), 0, sizeof(NAME_CACHE_ENTRY) + Length);
+ if (CacheEntry == NULL)
+ {
+ return;
+ }
+
+ /* Insert in head (likely more perf) */
+ CacheEntry->Next = CacheHead;
+ CacheHead = CacheEntry;
+ /* Set up entry with full path */
+ CacheEntry->MftId = MftId;
+ CacheEntry->NameLen = Length;
+ CopyMemory(CacheEntry->Name, Name, Length);
+}
+