//
// MessageId: STATUS_FLT_NAME_CACHE_MISS
//
// MessageText:
//
// The name requested was not found in Filter Manager’s name cache and
could not be retrieved from the file system.
// #define STATUS_FLT_NAME_CACHE_MISS ((NTSTATUS)0xC01C0018L)
Yep. Just found that’s my fault to search with case-sensitive.
But btw, with this error, how can we solve it? Thanks a lot.
I don’t know if a clean and always-working solution exists for
PreSetInformation. I would suggest to get the file name information on
the Create processing path, then store it in a stream context, and get
it every time you need (like in PreSetInformation). However, if you
decide to use this, then be sure to update the name information on file
renames.
That’s what I did in my legacy filter - I think minifilter doesn’t require this and remove it from there
Another thing is, there is a FileName in FileObject and it has the path name of the file (I checked it with some tests). But not sure if this file name is always available in case of the failure of FltGetFileNameInformation.
That’s what I did in my legacy filter - I think minifilter doesn’t require this and remove it from there
Another thing is, there is a FileName in FileObject and it has the path name of the file (I checked it with some tests). But not sure if this file name is always available in case of the failure of FltGetFileNameInformation.
The FileName field from a FILE_OBJECT is only reliable on the create
path; you shall NEVER depend on it on any other I/O request processing
(like Read, Write, SetInformation and so on). To use that field it was
also a standard technique to store it into stream contexts on create,
then access it when you need later.