I’m trying to use CLFS in my minifilter for logging purposes but every time it calls ClfsCreateLogFile, STATUS_OBJECT_PATH_INVALID is returned.
-
I’ve tried several create disposition values and always get the failure. What I want to use is OPEN_ALWAYS but I’ve tried the destructive values with no luck.
-
I want to use a dedicated log so the pathname is “log:c:\MyFiltLog” formatted per the MS documentation. I tried putting it in a sub-directory and also added the “.blf” extension.
In every case, I get the same failure. Here’s what the call looks like:
status = **ClfsCreateLogFile**(
&clfsLogFileObj,
&logUnicodeName,
(GENERIC_READ | GENERIC_WRITE),
(FILE_SHARE_READ | FILE_SHARE_WRITE),
NULL,
OPEN_ALWAYS,
0,
FILE_ATTRIBUTE_NORMAL,
CLFS_FLAG_NO_FLAGS,
NULL,
0
);
Shared read and write are enabled because my minifilter is the producer and my service is the consumer.
I want to replace CLFS_FLAG_NO_FLAGS with CLFS_FLAG_MINIFILTER_LEVEL but that’s the next step - figuring out the context for my minifilter that needs to be passed. Right now, I’ll have it handle re-entrant CLFS IO. I just want to get the log created or opened.