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

/*++
Copyright (c) 1999-2000 Microsoft Corporation
Module Name :
drive.h
Author :
JoyC 11/1/1999
Abstract:
Drive Device object handles one redirected drive
Revision History:
--*/
#pragma once
class DrDrive : public DrDevice
{
private:
protected:
virtual BOOL IsDeviceNameValid();
public:
DrDrive(SmartPtr<DrSession> &Session, ULONG DeviceType,
ULONG DeviceId, PUCHAR PreferredDosName);
virtual NTSTATUS Initialize(PRDPDR_DEVICE_ANNOUNCE devAnnounceMsg, ULONG Length);
virtual BOOL ShouldCreateDevice();
virtual VOID Remove();
NTSTATUS CreateDrive(PRDPDR_DEVICE_ANNOUNCE devAnnounceMsg, PWCHAR DriveName);
NTSTATUS CreateDriveAnnounceEvent(PRDPDR_DEVICE_ANNOUNCE devAnnounceMsg,
PRDPDR_DRIVEDEVICE_SUB driveAnnounceEvent,
ULONG driveAnnounceEventSize,
PCWSTR driveName,
OPTIONAL ULONG *driveAnnounceEventReqSize);
//
// These are file system specific functions.
//
virtual NTSTATUS Locks(IN OUT PRX_CONTEXT RxContext);
virtual NTSTATUS QueryDirectory(IN OUT PRX_CONTEXT RxContext);
virtual NTSTATUS NotifyChangeDirectory(IN OUT PRX_CONTEXT RxContext);
virtual NTSTATUS QueryVolumeInfo(IN OUT PRX_CONTEXT RxContext);
virtual NTSTATUS SetVolumeInfo(IN OUT PRX_CONTEXT RxContext);
virtual NTSTATUS QueryFileInfo(IN OUT PRX_CONTEXT RxContext);
virtual NTSTATUS SetFileInfo(IN OUT PRX_CONTEXT RxContext);
virtual NTSTATUS QuerySdInfo(IN OUT PRX_CONTEXT RxContext);
virtual NTSTATUS SetSdInfo(IN OUT PRX_CONTEXT RxContext);
virtual NTSTATUS OnLocksCompletion(PRDPDR_IOCOMPLETION_PACKET CompletionPacket, ULONG cbPacket,
BOOL *DoDefaultRead, SmartPtr<DrExchange> Exchange);
virtual NTSTATUS OnDirectoryControlCompletion(PRDPDR_IOCOMPLETION_PACKET CompletionPacket, ULONG cbPacket,
BOOL *DoDefaultRead, SmartPtr<DrExchange> Exchange);
virtual NTSTATUS OnQueryDirectoryCompletion(PRDPDR_IOCOMPLETION_PACKET CompletionPacket, ULONG cbPacket,
BOOL *DoDefaultRead, SmartPtr<DrExchange> Exchange);
virtual NTSTATUS OnNotifyChangeDirectoryCompletion(PRDPDR_IOCOMPLETION_PACKET CompletionPacket, ULONG cbPacket,
BOOL *DoDefaultRead, SmartPtr<DrExchange> Exchange);
virtual NTSTATUS OnQueryVolumeInfoCompletion(PRDPDR_IOCOMPLETION_PACKET CompletionPacket, ULONG cbPacket,
BOOL *DoDefaultRead, SmartPtr<DrExchange> Exchange);
virtual NTSTATUS OnSetVolumeInfoCompletion(PRDPDR_IOCOMPLETION_PACKET CompletionPacket, ULONG cbPacket,
BOOL *DoDefaultRead, SmartPtr<DrExchange> Exchange);
virtual NTSTATUS OnQueryFileInfoCompletion(PRDPDR_IOCOMPLETION_PACKET CompletionPacket, ULONG cbPacket,
BOOL *DoDefaultRead, SmartPtr<DrExchange> Exchange);
virtual NTSTATUS OnSetFileInfoCompletion(PRDPDR_IOCOMPLETION_PACKET CompletionPacket, ULONG cbPacket,
BOOL *DoDefaultRead, SmartPtr<DrExchange> Exchange);
virtual NTSTATUS OnQuerySdInfoCompletion(PRDPDR_IOCOMPLETION_PACKET CompletionPacket, ULONG cbPacket,
BOOL *DoDefaultRead, SmartPtr<DrExchange> Exchange);
virtual NTSTATUS OnSetSdInfoCompletion(PRDPDR_IOCOMPLETION_PACKET CompletionPacket, ULONG cbPacket,
BOOL *DoDefaultRead, SmartPtr<DrExchange> Exchange);
};