diff --git a/ProjectedFSLib.Managed.API/IDirectoryEnumerationResults.h b/ProjectedFSLib.Managed.API/IDirectoryEnumerationResults.h index 678afcd..76f24a1 100644 --- a/ProjectedFSLib.Managed.API/IDirectoryEnumerationResults.h +++ b/ProjectedFSLib.Managed.API/IDirectoryEnumerationResults.h @@ -36,6 +36,13 @@ public interface class IDirectoryEnumerationResults /// provider returns HResult.InsufficientBuffer from the GetDirectoryEnumerationCallback /// method. /// + /// + /// IMPORTANT: File and directory names passed to this method must be in the sort + /// specified by PrjFileNameCompare + /// (see https://docs.microsoft.com/en-us/windows/win32/api/projectedfslib/nf-projectedfslib-prjfilenamecompare ), + /// or else names can be duplicated or missing from the enumeration results presented to the + /// process enumerating the filesystem. + /// /// /// The name of the file or directory. /// The size of the file. @@ -69,6 +76,13 @@ public interface class IDirectoryEnumerationResults /// provider returns HResult.InsufficientBuffer from the GetDirectoryEnumerationCallback /// method. /// + /// + /// IMPORTANT: File and directory names passed to this method must be in the sort + /// specified by PrjFileNameCompare + /// (see https://docs.microsoft.com/en-us/windows/win32/api/projectedfslib/nf-projectedfslib-prjfilenamecompare ), + /// or else names can be duplicated or missing from the enumeration results presented to the + /// process enumerating the filesystem. + /// /// /// The name of the file or directory. /// The size of the file. diff --git a/ProjectedFSLib.Managed.API/IRequiredCallbacks.h b/ProjectedFSLib.Managed.API/IRequiredCallbacks.h index 2aa7dcc..781f4fd 100644 --- a/ProjectedFSLib.Managed.API/IRequiredCallbacks.h +++ b/ProjectedFSLib.Managed.API/IRequiredCallbacks.h @@ -87,6 +87,11 @@ public interface class IRequiredCallbacks { /// If no entries match the search expression specified in , /// or if all the entries in the directory were added in a previous invocation of this callback, /// the provider must return . + /// IMPORTANT: The provider must ensure file and directory names returned from this + /// callback are in the sort order specified by PrjFileNameCompare + /// (see https://docs.microsoft.com/en-us/windows/win32/api/projectedfslib/nf-projectedfslib-prjfilenamecompare ), + /// or else names can be duplicated or missing from the enumeration results presented to the + /// process enumerating the filesystem. /// /// /// A value that uniquely identifies an invocation of the callback. @@ -119,6 +124,11 @@ public interface class IRequiredCallbacks { /// If the provider returns from this method, then it must pass /// this value to ProjFS.VirtualizationInstance.CompleteCommand to provide the /// enumeration results. + /// IMPORTANT: File and directory names passed to this parameter must be in the sort + /// order specified by PrjFileNameCompare + /// (see https://docs.microsoft.com/en-us/windows/win32/api/projectedfslib/nf-projectedfslib-prjfilenamecompare ), + /// or else names can be duplicated or missing from the enumeration results presented to the + /// process enumerating the filesystem. /// /// /// if the provider successfully completes the operation.