2 * ntfs.handler - New Technology FileSystem handler
4 * Copyright © 2012 The AROS Development Team
6 * This program is free software; you can redistribute it and/or modify it
7 * under the same terms as AROS itself.
16 void ProcessDiskChange (void);
18 BOOL
AttemptDestroyVolume(struct FSData
*);
20 void SendVolumePacket(struct DosList
*, ULONG
);
22 LONG
InitDiskHandler(struct FileSysStartupMsg
*);
23 void CleanupDiskHandler(void);
24 void UpdateDisk(void);
25 void Probe_64bit_support(void);
26 ULONG
AccessDisk(BOOL
, ULONG
, ULONG
, ULONG
, UBYTE
*);
29 void FillDiskInfo (struct InfoData
*);
32 void ProcessPackets(void);
33 void ReplyPacket(struct DosPacket
*);
36 LONG
InitDirHandle(struct FSData
*, struct DirHandle
*, BOOL
);
37 LONG
ReleaseDirHandle(struct DirHandle
*);
39 LONG
GetDirEntry(struct DirHandle
*, ULONG
, struct DirEntry
*);
40 LONG
GetNextDirEntry(struct DirHandle
*, struct DirEntry
*, BOOL
);
41 LONG
GetDirEntryByCluster(struct DirHandle
*, UQUAD
, struct DirEntry
*);
43 LONG
GetDirEntryByName(struct DirHandle
*, STRPTR
, ULONG
, struct DirEntry
*);
44 LONG
GetDirEntryByPath(struct DirHandle
*, STRPTR
, ULONG
, struct DirEntry
*);
46 LONG
GetParentDir(struct DirHandle
*, struct DirEntry
*);
48 LONG
UpdateDirEntry(struct DirEntry
*);
50 LONG
FillFIB(struct ExtFileLock
*, struct FileInfoBlock
*);
53 LONG
SetDirEntryName(struct DirEntry
*, STRPTR
, ULONG
);
56 LONG
ReadBootSector (struct FSData
*);
57 void FreeBootSector(struct FSData
*);
58 ULONG
PostProcessMFTRecord(struct FSData
*, struct MFTRecordEntry
*, int, UBYTE
*);
59 ULONG
PreProcessMFTRecord(struct FSData
*, struct MFTRecordEntry
*, int);
60 IPTR
InitMFTEntry(struct NTFSMFTEntry
*, ULONG
);
61 IPTR
ReadMFTAttribData(struct NTFSMFTAttr
*, struct MFTAttr
*, UBYTE
*, UQUAD
, ULONG
, int);
62 IPTR
ReadMFTAttrib(struct NTFSMFTAttr
*, UBYTE
*, UQUAD
, ULONG
, int);
63 struct MFTAttr
*MapMFTAttrib (struct NTFSMFTAttr
*, struct NTFSMFTEntry
*, UBYTE
);
64 struct MFTAttr
*FindMFTAttrib(struct NTFSMFTAttr
*, UBYTE
);
65 void FreeMFTAttrib(struct NTFSMFTAttr
*);
66 LONG
ProcessFSEntry(struct NTFSMFTEntry
*, struct DirEntry
*, ULONG
**);
69 LONG
OpLockFile(struct ExtFileLock
*, UBYTE
*, ULONG
, LONG
, struct ExtFileLock
**);
70 void OpUnlockFile(struct ExtFileLock
*);
71 LONG
OpCopyLock(struct ExtFileLock
*, struct ExtFileLock
**);
72 LONG
OpLockParent(struct ExtFileLock
*, struct ExtFileLock
**);
73 LONG
OpOpenFile(struct ExtFileLock
*, UBYTE
*, ULONG
, LONG
, struct ExtFileLock
**);
74 LONG
OpDeleteFile(struct ExtFileLock
*, UBYTE
*, ULONG
);
75 LONG
OpRenameFile(struct ExtFileLock
*, UBYTE
*, ULONG
, struct ExtFileLock
*, UBYTE
*, ULONG
);
76 LONG
OpCreateDir(struct ExtFileLock
*, UBYTE
*, ULONG
, struct ExtFileLock
**);
77 LONG
OpRead(struct ExtFileLock
*, UBYTE
*, UQUAD
, UQUAD
*);
78 LONG
OpWrite(struct ExtFileLock
*, UBYTE
*, UQUAD
, UQUAD
*);
79 LONG
OpSetFileSize(struct ExtFileLock
*, UQUAD
, LONG
, UQUAD
*);
80 LONG
OpSetProtect(struct ExtFileLock
*, UBYTE
*, ULONG
, ULONG
);
81 LONG
OpSetDate(struct ExtFileLock
*, UBYTE
*, ULONG
, struct DateStamp
*);
82 LONG
OpAddNotify(struct NotifyRequest
*);
83 LONG
OpRemoveNotify(struct NotifyRequest
*);
86 LONG
TestLock(struct ExtFileLock
*);
87 LONG
LockFileByName(struct ExtFileLock
*, UBYTE
*, LONG
, LONG
, struct ExtFileLock
**);
88 LONG
LockFile(struct DirEntry
*, LONG
, struct ExtFileLock
**) ;
89 LONG
LockRoot(LONG
, struct ExtFileLock
**);
90 LONG
CopyLock(struct ExtFileLock
*, struct ExtFileLock
**);
91 void FreeLock(struct ExtFileLock
*);
94 void SendNotify(struct NotifyRequest
*);
95 void SendNotifyByLock(struct FSData
*, struct GlobalLock
*);
96 void SendNotifyByDirEntry(struct FSData
*, struct DirEntry
*);
97 void ProcessNotify(void);
100 LONG
InitTimer(void);
101 void CleanupTimer(void);
102 void RestartTimer(void);
103 void HandleTimer(void);
107 void NTFS2DateStamp(UQUAD
*, struct DateStamp
*);