FltGetFileNameInformation and DFS

* driverdev wrote, On 09/11/09 17:18:

I seem to be having a lot of problems with FltGetFileNameInformation when I call it for file objects that contain certain types of DFS paths. The results are very inconsistent and vary from folder to folder, machine to machine, and environment to environment.

The “\Server\Share\Domain.com\share\path” file path seems to be particularly troublesome for this function. I get this sort of a path when the DC and file server are the same machine and the root target is the parent folder path.

I am calling this from near the beginning of PreOpDC like this:

Do you mean Pre-op on IRP_MJ_DIRECTORY_CONTROL, IRP_MJ_DEVICE_CONTROL or
even IRP_MJ_QUERY_INFORMATION or have I missed something ?

status = FltGetFileNameInformation(Data,
FLT_FILE_NAME_NORMALIZED |
FLT_FILE_NAME_QUERY_DEFAULT,
&pNameInfo);

Different machines and different domain from Environment A. Works fine for one path and for another path I get 0xC00000BE. These are two folders with the same parent folder and the user the thread is impersonating has full control on these paths. If I go to another machine, I don’t get any errors, but my mini-filter doesn’t even seem to see the directory queries at all.

Can someone please offer me some guidance here on how to troubleshoot these problems and why this is so inconsistent and unreliable?

Wireshark somewhere on the link can also be a very helpful indicator as
to how lower layers have interpreted your filters actions and as to
where the error is occurring - maybe due to failure of network calls.

Sam