RamfsNtFileStore.cs 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. using SMBLibrary;
  2. using System.Collections.Generic;
  3. namespace SmbSvr.Ramfs
  4. {
  5. internal class RamfsNtFileStore : INTFileStore
  6. {
  7. public NTStatus CreateFile(out object handle, out FileStatus fileStatus, string path, AccessMask desiredAccess,
  8. FileAttributes fileAttributes, ShareAccess shareAccess, CreateDisposition createDisposition,
  9. CreateOptions createOptions, SecurityContext securityContext)
  10. {
  11. handle = null;
  12. fileStatus = FileStatus.FILE_SUPERSEDED;
  13. return NTStatus.STATUS_NOT_IMPLEMENTED;
  14. }
  15. public NTStatus ReadFile(out byte[] data, object handle, long offset, int maxCount)
  16. {
  17. data = null;
  18. return NTStatus.STATUS_NOT_IMPLEMENTED;
  19. }
  20. public NTStatus WriteFile(out int numberOfBytesWritten, object handle, long offset, byte[] data)
  21. {
  22. numberOfBytesWritten = 0;
  23. return NTStatus.STATUS_NOT_IMPLEMENTED;
  24. }
  25. public NTStatus QueryDirectory(out List<QueryDirectoryFileInformation> result, object handle, string fileName, FileInformationClass informationClass)
  26. {
  27. result = null;
  28. return NTStatus.STATUS_NOT_IMPLEMENTED;
  29. }
  30. public NTStatus GetFileInformation(out FileInformation result, object handle, FileInformationClass informationClass)
  31. {
  32. result = null;
  33. return NTStatus.STATUS_NOT_IMPLEMENTED;
  34. }
  35. public NTStatus SetFileInformation(object handle, FileInformation information)
  36. {
  37. return NTStatus.STATUS_NOT_IMPLEMENTED;
  38. }
  39. // unuse
  40. public NTStatus GetFileSystemInformation(out FileSystemInformation result, FileSystemInformationClass informationClass)
  41. {
  42. result = null;
  43. return NTStatus.STATUS_NOT_IMPLEMENTED;
  44. }
  45. public NTStatus CloseFile(object handle)
  46. {
  47. return NTStatus.STATUS_SUCCESS;
  48. }
  49. public NTStatus FlushFileBuffers(object handle)
  50. {
  51. return NTStatus.STATUS_SUCCESS;
  52. }
  53. public NTStatus LockFile(object handle, long byteOffset, long length, bool exclusiveLock)
  54. {
  55. return NTStatus.STATUS_NOT_IMPLEMENTED;
  56. }
  57. public NTStatus UnlockFile(object handle, long byteOffset, long length)
  58. {
  59. return NTStatus.STATUS_NOT_IMPLEMENTED;
  60. }
  61. public NTStatus NotifyChange(out object ioRequest, object handle, NotifyChangeFilter completionFilter, bool watchTree,
  62. int outputBufferSize, OnNotifyChangeCompleted onNotifyChangeCompleted, object context)
  63. {
  64. ioRequest = null;
  65. return NTStatus.STATUS_NOT_IMPLEMENTED;
  66. }
  67. public NTStatus Cancel(object ioRequest)
  68. {
  69. return NTStatus.STATUS_NOT_IMPLEMENTED;
  70. }
  71. public NTStatus DeviceIOControl(object handle, uint ctlCode, byte[] input, out byte[] output, int maxOutputLength)
  72. {
  73. output = null;
  74. return NTStatus.STATUS_NOT_IMPLEMENTED;
  75. }
  76. }
  77. }