Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

78 lines
3.3 KiB

  1. /*++
  2. Copyright (c) 1999-2000 Microsoft Corporation
  3. Module Name :
  4. drive.h
  5. Author :
  6. JoyC 11/1/1999
  7. Abstract:
  8. Drive Device object handles one redirected drive
  9. Revision History:
  10. --*/
  11. #pragma once
  12. class DrDrive : public DrDevice
  13. {
  14. private:
  15. protected:
  16. virtual BOOL IsDeviceNameValid();
  17. public:
  18. DrDrive(SmartPtr<DrSession> &Session, ULONG DeviceType,
  19. ULONG DeviceId, PUCHAR PreferredDosName);
  20. virtual NTSTATUS Initialize(PRDPDR_DEVICE_ANNOUNCE devAnnounceMsg, ULONG Length);
  21. virtual BOOL ShouldCreateDevice();
  22. virtual VOID Remove();
  23. NTSTATUS CreateDrive(PRDPDR_DEVICE_ANNOUNCE devAnnounceMsg, PWCHAR DriveName);
  24. NTSTATUS CreateDriveAnnounceEvent(PRDPDR_DEVICE_ANNOUNCE devAnnounceMsg,
  25. PRDPDR_DRIVEDEVICE_SUB driveAnnounceEvent,
  26. ULONG driveAnnounceEventSize,
  27. PCWSTR driveName,
  28. OPTIONAL ULONG *driveAnnounceEventReqSize);
  29. //
  30. // These are file system specific functions.
  31. //
  32. virtual NTSTATUS Locks(IN OUT PRX_CONTEXT RxContext);
  33. virtual NTSTATUS QueryDirectory(IN OUT PRX_CONTEXT RxContext);
  34. virtual NTSTATUS NotifyChangeDirectory(IN OUT PRX_CONTEXT RxContext);
  35. virtual NTSTATUS QueryVolumeInfo(IN OUT PRX_CONTEXT RxContext);
  36. virtual NTSTATUS SetVolumeInfo(IN OUT PRX_CONTEXT RxContext);
  37. virtual NTSTATUS QueryFileInfo(IN OUT PRX_CONTEXT RxContext);
  38. virtual NTSTATUS SetFileInfo(IN OUT PRX_CONTEXT RxContext);
  39. virtual NTSTATUS QuerySdInfo(IN OUT PRX_CONTEXT RxContext);
  40. virtual NTSTATUS SetSdInfo(IN OUT PRX_CONTEXT RxContext);
  41. virtual NTSTATUS OnLocksCompletion(PRDPDR_IOCOMPLETION_PACKET CompletionPacket, ULONG cbPacket,
  42. BOOL *DoDefaultRead, SmartPtr<DrExchange> Exchange);
  43. virtual NTSTATUS OnDirectoryControlCompletion(PRDPDR_IOCOMPLETION_PACKET CompletionPacket, ULONG cbPacket,
  44. BOOL *DoDefaultRead, SmartPtr<DrExchange> Exchange);
  45. virtual NTSTATUS OnQueryDirectoryCompletion(PRDPDR_IOCOMPLETION_PACKET CompletionPacket, ULONG cbPacket,
  46. BOOL *DoDefaultRead, SmartPtr<DrExchange> Exchange);
  47. virtual NTSTATUS OnNotifyChangeDirectoryCompletion(PRDPDR_IOCOMPLETION_PACKET CompletionPacket, ULONG cbPacket,
  48. BOOL *DoDefaultRead, SmartPtr<DrExchange> Exchange);
  49. virtual NTSTATUS OnQueryVolumeInfoCompletion(PRDPDR_IOCOMPLETION_PACKET CompletionPacket, ULONG cbPacket,
  50. BOOL *DoDefaultRead, SmartPtr<DrExchange> Exchange);
  51. virtual NTSTATUS OnSetVolumeInfoCompletion(PRDPDR_IOCOMPLETION_PACKET CompletionPacket, ULONG cbPacket,
  52. BOOL *DoDefaultRead, SmartPtr<DrExchange> Exchange);
  53. virtual NTSTATUS OnQueryFileInfoCompletion(PRDPDR_IOCOMPLETION_PACKET CompletionPacket, ULONG cbPacket,
  54. BOOL *DoDefaultRead, SmartPtr<DrExchange> Exchange);
  55. virtual NTSTATUS OnSetFileInfoCompletion(PRDPDR_IOCOMPLETION_PACKET CompletionPacket, ULONG cbPacket,
  56. BOOL *DoDefaultRead, SmartPtr<DrExchange> Exchange);
  57. virtual NTSTATUS OnQuerySdInfoCompletion(PRDPDR_IOCOMPLETION_PACKET CompletionPacket, ULONG cbPacket,
  58. BOOL *DoDefaultRead, SmartPtr<DrExchange> Exchange);
  59. virtual NTSTATUS OnSetSdInfoCompletion(PRDPDR_IOCOMPLETION_PACKET CompletionPacket, ULONG cbPacket,
  60. BOOL *DoDefaultRead, SmartPtr<DrExchange> Exchange);
  61. };