src: dotnet: WIP

This commit is contained in:
Bill Zissimopoulos 2017-04-03 12:06:45 -07:00
parent 1980f511ce
commit 27114184d2
2 changed files with 58 additions and 40 deletions

View File

@ -270,9 +270,10 @@ namespace Fsp
UInt32 FileAttributes,
IntPtr SecurityDescriptor,
UInt64 AllocationSize,
IntPtr PFileContext,
out FullContext FullContext,
out FileInfo FileInfo)
{
FullContext = default(FullContext);
FileInfo = default(FileInfo);
return STATUS_INVALID_DEVICE_REQUEST;
}
@ -281,15 +282,16 @@ namespace Fsp
String FileName,
UInt32 CreateOptions,
UInt32 GrantedAccess,
IntPtr PFileContext,
out FullContext FullContext,
out FileInfo FileInfo)
{
FullContext = default(FullContext);
FileInfo = default(FileInfo);
return STATUS_INVALID_DEVICE_REQUEST;
}
private static Int32 Overwrite(
IntPtr FileSystem,
IntPtr FileContext,
ref FullContext FullContext,
UInt32 FileAttributes,
Boolean ReplaceFileAttributes,
UInt64 AllocationSize,
@ -300,19 +302,19 @@ namespace Fsp
}
private static void Cleanup(
IntPtr FileSystem,
IntPtr FileContext,
ref FullContext FullContext,
String FileName,
UInt32 Flags)
{
}
private static void Close(
IntPtr FileSystem,
IntPtr FileContext)
ref FullContext FullContext)
{
}
private static Int32 Read(
IntPtr FileSystem,
IntPtr FileContext,
ref FullContext FullContext,
IntPtr Buffer,
UInt64 Offset,
UInt32 Length,
@ -323,7 +325,7 @@ namespace Fsp
}
private static Int32 Write(
IntPtr FileSystem,
IntPtr FileContext,
ref FullContext FullContext,
IntPtr Buffer,
UInt64 Offset,
UInt32 Length,
@ -338,7 +340,7 @@ namespace Fsp
}
private static Int32 Flush(
IntPtr FileSystem,
IntPtr FileContext,
ref FullContext FullContext,
out FileInfo FileInfo)
{
FileInfo = default(FileInfo);
@ -346,7 +348,7 @@ namespace Fsp
}
private static Int32 GetFileInfo(
IntPtr FileSystem,
IntPtr FileContext,
ref FullContext FullContext,
out FileInfo FileInfo)
{
FileInfo = default(FileInfo);
@ -354,7 +356,7 @@ namespace Fsp
}
private static Int32 SetBasicInfo(
IntPtr FileSystem,
IntPtr FileContext,
ref FullContext FullContext,
UInt32 FileAttributes,
UInt64 CreationTime,
UInt64 LastAccessTime,
@ -367,7 +369,7 @@ namespace Fsp
}
private static Int32 SetFileSize(
IntPtr FileSystem,
IntPtr FileContext,
ref FullContext FullContext,
UInt64 NewSize,
Boolean SetAllocationSize,
out FileInfo FileInfo)
@ -377,14 +379,14 @@ namespace Fsp
}
private static Int32 CanDelete(
IntPtr FileSystem,
IntPtr FileContext,
ref FullContext FullContext,
String FileName)
{
return STATUS_INVALID_DEVICE_REQUEST;
}
private static Int32 Rename(
IntPtr FileSystem,
IntPtr FileContext,
ref FullContext FullContext,
String FileName,
String NewFileName,
Boolean ReplaceIfExists)
@ -393,7 +395,7 @@ namespace Fsp
}
private static Int32 GetSecurity(
IntPtr FileSystem,
IntPtr FileContext,
ref FullContext FullContext,
IntPtr SecurityDescriptor,
IntPtr PSecurityDescriptorSize)
{
@ -401,7 +403,7 @@ namespace Fsp
}
private static Int32 SetSecurity(
IntPtr FileSystem,
IntPtr FileContext,
ref FullContext FullContext,
UInt32 SecurityInformation,
IntPtr ModificationDescriptor)
{
@ -409,7 +411,7 @@ namespace Fsp
}
private static Int32 ReadDirectory(
IntPtr FileSystem,
IntPtr FileContext,
ref FullContext FullContext,
String Pattern,
String Marker,
IntPtr Buffer,
@ -434,7 +436,7 @@ namespace Fsp
}
private static Int32 GetReparsePoint(
IntPtr FileSystem,
IntPtr FileContext,
ref FullContext FullContext,
String FileName,
IntPtr Buffer,
out UIntPtr PSize)
@ -444,7 +446,7 @@ namespace Fsp
}
private static Int32 SetReparsePoint(
IntPtr FileSystem,
IntPtr FileContext,
ref FullContext FullContext,
String FileName,
IntPtr Buffer,
UIntPtr Size)
@ -453,7 +455,7 @@ namespace Fsp
}
private static Int32 DeleteReparsePoint(
IntPtr FileSystem,
IntPtr FileContext,
ref FullContext FullContext,
String FileName,
IntPtr Buffer,
UIntPtr Size)
@ -462,7 +464,7 @@ namespace Fsp
}
private static Int32 GetStreamInfo(
IntPtr FileSystem,
IntPtr FileContext,
ref FullContext FullContext,
IntPtr Buffer,
UInt32 Length,
out UInt32 PBytesTransferred)

View File

@ -149,6 +149,22 @@ namespace Fsp.Interop
//internal unsafe fixed UInt16 FileNameBuf[];
}
[StructLayout(LayoutKind.Sequential)]
struct StreamInfo
{
internal UInt16 Size;
internal UInt64 StreamSize;
internal UInt64 StreamAllocationSize;
//internal unsafe fixed UInt16 StreamNameBuf[];
}
[StructLayout(LayoutKind.Sequential)]
struct FullContext
{
internal UInt64 UserContext;
internal UInt64 UserContext2;
}
[StructLayout(LayoutKind.Sequential)]
internal struct IoStatusBlock
{
@ -186,7 +202,7 @@ namespace Fsp.Interop
UInt32 FileAttributes,
IntPtr SecurityDescriptor,
UInt64 AllocationSize,
IntPtr PFileContext,
out FullContext FullContext,
out FileInfo FileInfo);
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
internal delegate Int32 Open(
@ -194,12 +210,12 @@ namespace Fsp.Interop
[MarshalAs(UnmanagedType.LPWStr)] String FileName,
UInt32 CreateOptions,
UInt32 GrantedAccess,
IntPtr PFileContext,
out FullContext FullContext,
out FileInfo FileInfo);
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
internal delegate Int32 Overwrite(
IntPtr FileSystem,
IntPtr FileContext,
ref FullContext FullContext,
UInt32 FileAttributes,
Boolean ReplaceFileAttributes,
UInt64 AllocationSize,
@ -207,17 +223,17 @@ namespace Fsp.Interop
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
internal delegate void Cleanup(
IntPtr FileSystem,
IntPtr FileContext,
ref FullContext FullContext,
[MarshalAs(UnmanagedType.LPWStr)] String FileName,
UInt32 Flags);
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
internal delegate void Close(
IntPtr FileSystem,
IntPtr FileContext);
ref FullContext FullContext);
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
internal delegate Int32 Read(
IntPtr FileSystem,
IntPtr FileContext,
ref FullContext FullContext,
IntPtr Buffer,
UInt64 Offset,
UInt32 Length,
@ -225,7 +241,7 @@ namespace Fsp.Interop
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
internal delegate Int32 Write(
IntPtr FileSystem,
IntPtr FileContext,
ref FullContext FullContext,
IntPtr Buffer,
UInt64 Offset,
UInt32 Length,
@ -236,17 +252,17 @@ namespace Fsp.Interop
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
internal delegate Int32 Flush(
IntPtr FileSystem,
IntPtr FileContext,
ref FullContext FullContext,
out FileInfo FileInfo);
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
internal delegate Int32 GetFileInfo(
IntPtr FileSystem,
IntPtr FileContext,
ref FullContext FullContext,
out FileInfo FileInfo);
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
internal delegate Int32 SetBasicInfo(
IntPtr FileSystem,
IntPtr FileContext,
ref FullContext FullContext,
UInt32 FileAttributes,
UInt64 CreationTime,
UInt64 LastAccessTime,
@ -256,38 +272,38 @@ namespace Fsp.Interop
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
internal delegate Int32 SetFileSize(
IntPtr FileSystem,
IntPtr FileContext,
ref FullContext FullContext,
UInt64 NewSize,
Boolean SetAllocationSize,
out FileInfo FileInfo);
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
internal delegate Int32 CanDelete(
IntPtr FileSystem,
IntPtr FileContext,
ref FullContext FullContext,
[MarshalAs(UnmanagedType.LPWStr)] String FileName);
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
internal delegate Int32 Rename(
IntPtr FileSystem,
IntPtr FileContext,
ref FullContext FullContext,
[MarshalAs(UnmanagedType.LPWStr)] String FileName,
[MarshalAs(UnmanagedType.LPWStr)] String NewFileName,
Boolean ReplaceIfExists);
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
internal delegate Int32 GetSecurity(
IntPtr FileSystem,
IntPtr FileContext,
ref FullContext FullContext,
IntPtr SecurityDescriptor,
IntPtr PSecurityDescriptorSize);
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
internal delegate Int32 SetSecurity(
IntPtr FileSystem,
IntPtr FileContext,
ref FullContext FullContext,
UInt32 SecurityInformation,
IntPtr ModificationDescriptor);
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
internal delegate Int32 ReadDirectory(
IntPtr FileSystem,
IntPtr FileContext,
ref FullContext FullContext,
[MarshalAs(UnmanagedType.LPWStr)] String Pattern,
[MarshalAs(UnmanagedType.LPWStr)] String Marker,
IntPtr Buffer,
@ -305,28 +321,28 @@ namespace Fsp.Interop
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
internal delegate Int32 GetReparsePoint(
IntPtr FileSystem,
IntPtr FileContext,
ref FullContext FullContext,
[MarshalAs(UnmanagedType.LPWStr)] String FileName,
IntPtr Buffer,
out UIntPtr PSize);
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
internal delegate Int32 SetReparsePoint(
IntPtr FileSystem,
IntPtr FileContext,
ref FullContext FullContext,
[MarshalAs(UnmanagedType.LPWStr)] String FileName,
IntPtr Buffer,
UIntPtr Size);
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
internal delegate Int32 DeleteReparsePoint(
IntPtr FileSystem,
IntPtr FileContext,
ref FullContext FullContext,
[MarshalAs(UnmanagedType.LPWStr)] String FileName,
IntPtr Buffer,
UIntPtr Size);
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
internal delegate Int32 GetStreamInfo(
IntPtr FileSystem,
IntPtr FileContext,
ref FullContext FullContext,
IntPtr Buffer,
UInt32 Length,
out UInt32 PBytesTransferred);