diff --git a/build/VStudio/.gitignore b/build/VStudio/.gitignore index c78dfb19..c23cca77 100644 --- a/build/VStudio/.gitignore +++ b/build/VStudio/.gitignore @@ -3,3 +3,4 @@ build *.suo *.vcproj.* *.vcxproj.user +*.csproj.user diff --git a/src/dotnet/FileSystemBase.cs b/src/dotnet/FileSystemBase.cs index 7844d76f..e7f98aa5 100644 --- a/src/dotnet/FileSystemBase.cs +++ b/src/dotnet/FileSystemBase.cs @@ -337,8 +337,9 @@ namespace Fsp StreamInfo.SetStreamNameBuf(StreamName); if (!Api.FspFileSystemAddStreamInfo(ref StreamInfo, Buffer, Length, out BytesTransferred)) - break; + return STATUS_SUCCESS; } + Api.FspFileSystemEndStreamInfo(Buffer, Length, out BytesTransferred); return STATUS_SUCCESS; } public virtual Boolean GetStreamEntry( @@ -383,8 +384,9 @@ namespace Fsp DirInfo.SetFileNameBuf(FileName); if (!Api.FspFileSystemAddDirInfo(ref DirInfo, Buffer, Length, out BytesTransferred)) - break; + return STATUS_SUCCESS; } + Api.FspFileSystemEndDirInfo(Buffer, Length, out BytesTransferred); return STATUS_SUCCESS; } public Int32 BufferedReadDirectory( diff --git a/src/dotnet/Interop.cs b/src/dotnet/Interop.cs index 0a78a7eb..5c395087 100644 --- a/src/dotnet/Interop.cs +++ b/src/dotnet/Interop.cs @@ -121,7 +121,7 @@ namespace Fsp.Interop Size = VolumeLabelSize; for (int I = 0; Size > I; I++) P[I] = Value[I]; - VolumeLabelLength = (UInt16)Size; + VolumeLabelLength = (UInt16)(Size * 2); } } } @@ -156,7 +156,7 @@ namespace Fsp.Interop Size = NormalizedNameSize; for (int I = 0; Size > I; I++) P[I] = Value[I]; - NormalizedNameSize = (UInt16)Size; + NormalizedNameSize = (UInt16)(Size * 2); } } @@ -682,6 +682,13 @@ namespace Fsp.Interop fixed (DirInfo *P = &DirInfo) return _FspFileSystemAddDirInfo((IntPtr)P, Buffer, Length, out PBytesTransferred); } + internal static unsafe Boolean FspFileSystemEndDirInfo( + IntPtr Buffer, + UInt32 Length, + out UInt32 PBytesTransferred) + { + return _FspFileSystemAddDirInfo(IntPtr.Zero, Buffer, Length, out PBytesTransferred); + } internal static unsafe Boolean FspFileSystemAddStreamInfo( ref StreamInfo StreamInfo, IntPtr Buffer, @@ -691,6 +698,13 @@ namespace Fsp.Interop fixed (StreamInfo *P = &StreamInfo) return _FspFileSystemAddStreamInfo((IntPtr)P, Buffer, Length, out PBytesTransferred); } + internal static unsafe Boolean FspFileSystemEndStreamInfo( + IntPtr Buffer, + UInt32 Length, + out UInt32 PBytesTransferred) + { + return _FspFileSystemAddStreamInfo(IntPtr.Zero, Buffer, Length, out PBytesTransferred); + } internal unsafe static Object GetUserContext( IntPtr NativePtr)