Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers...
[reactos.git] / drivers / filesystems / fastfat / vfat_fr.txt
1 A Faire :
2 finir FsdDirectoryControl.
3 tester les écritures.
4 FsdCreate doit créer le fichier s'il n'existe pas et que le répertoire parent existe,
5 et que les options d'appel lee demandent.
6
7
8 fichiers sources :
9
10 iface.c
11 dir.c
12 blockdev.c
13 vfat.h
14
15
16
17 fonctions visibles de l'extérieur (appelées par IoCallDriver):
18 DriverEntry : iface.c
19 initialisation du driver
20 rend visibles les fonctions suivantes :
21 FsdFileSystemControl
22 répond aux demandes IRP_MJ_FILE_SYSTEM_CONTROL
23 monte les filesystems qu'il reconnait
24 appelle FsdHasFileSystem pour voir si le driver reconnait le filesystem.
25 puis appelle FsdMount.
26 NTSTATUS FsdCreate(PDEVICE_OBJECT DeviceObject, PIRP Irp)
27 répond aux demandes IRP_MJ_CREATE :
28 appelle FsdOpenFile, qui remplit IoGetCurrentIrpStackLocation(Irp)->FileObject->Fcb
29 remplit Irp->IoStatus
30 appelle IoCompleteRequest
31 FsdClose
32 répond aux demandes IRP_MJ_CLOSE
33 appelle FsdCloseFile, qui ne fait rien actuellement.
34 remplit Irp->IoStatus
35 appelle IoCompleteRequest
36 FsdRead
37 répond aux demandes IRP_MJ_READ
38 FsdWrite
39 répond aux demandes IRP_MJ_WRITE
40 FsdQueryInformation
41 répond aux demandes IRP_MJ_QUERY_INFORMATION
42 FsdDirectoryControl
43 répond aux demandes IRP_MJ_DIRECTORY_CONTROL
44
45
46 fonctions strictement internes dans iface.c :
47 ULONG Fat32GetNextCluster(PDEVICE_EXTENSION DeviceExt, ULONG CurrentCluster)
48 ULONG Fat16GetNextCluster(PDEVICE_EXTENSION DeviceExt, ULONG CurrentCluster)
49 ULONG Fat12GetNextCluster(PDEVICE_EXTENSION DeviceExt, ULONG CurrentCluster)
50 ULONG GetNextCluster(PDEVICE_EXTENSION DeviceExt, ULONG CurrentCluster)
51 ULONG FAT16FindAvailableCluster(PDEVICE_EXTENSION DeviceExt)
52 void FAT16WriteCluster(PDEVICE_EXTENSION DeviceExt, ULONG ClusterToWrite,
53 ULONG NewValue)
54 void WriteCluster(PDEVICE_EXTENSION DeviceExt, ULONG ClusterToWrite,
55 ULONG NewValue)
56 ULONG GetNextWriteCluster(PDEVICE_EXTENSION DeviceExt, ULONG CurrentCluster)
57 unsigned long ClusterToSector(PDEVICE_EXTENSION DeviceExt,
58 unsigned long Cluster)
59 void RtlAnsiToUnicode(PWSTR Dest, PCH Source, ULONG Length)
60 void vfat_initstr(wchar_t *wstr, ULONG wsize)
61 wchar_t * vfat_wcsncat(wchar_t * dest, const wchar_t * src,size_t wstart, size_t wcount)
62 wchar_t * vfat_wcsncpy(wchar_t * dest, const wchar_t *src,size_t wcount)
63 wchar_t * vfat_movstr(wchar_t * dest, const wchar_t *src, ULONG dpos,
64 ULONG spos, ULONG len)
65 BOOLEAN IsLastEntry(PVOID Block, ULONG Offset)
66 BOOLEAN IsDeletedEntry(PVOID Block, ULONG Offset)
67 BOOLEAN GetEntryName(PVOID Block, PULONG _Offset, PWSTR Name, PULONG _jloop,
68 PDEVICE_EXTENSION DeviceExt, PULONG _StartingSector)
69 BOOLEAN wstrcmpi(PWSTR s1, PWSTR s2)
70 BOOLEAN wstrcmpjoki(PWSTR s1, PWSTR s2)
71 NTSTATUS FindFile(PDEVICE_EXTENSION DeviceExt, PFCB Fcb,
72 PFCB Parent, PWSTR FileToFind)
73 parcourt le répertoire décrit par Parent pour trouver un fichier dans le filesystem
74 décrit par DeviceExt.Si Parent==NULL : part de la racine du filesystem.
75 remplit Fcb si trouve elle le fichier, et renvoie STATUS_SUCCESS.
76 renvoie STATUS_UNSUCCESSFUL sinon.
77 NTSTATUS FsdCloseFile(PDEVICE_EXTENSION DeviceExt, PFILE_OBJECT FileObject)
78 ne fait rien, renvoie STATUS_SUCCESS.
79 NTSTATUS FsdOpenFile(PDEVICE_EXTENSION DeviceExt, PFILE_OBJECT FileObject,
80 PWSTR FileName)
81 parcourt l'arborescence pour trouver le fichier(appelle FindFile à chaque niveau)
82 si trouvé : FileObject->FsContext = Fcb du fichier, renvoie STATUS_SUCCESS
83 sinon : renvoie STATUS_UNSUCCESSFULL
84 BOOLEAN FsdHasFileSystem(PDEVICE_OBJECT DeviceToMount)
85 NTSTATUS FsdMountDevice(PDEVICE_EXTENSION DeviceExt,
86 PDEVICE_OBJECT DeviceToMount)
87 void VFATLoadCluster(PDEVICE_EXTENSION DeviceExt, PVOID Buffer, ULONG Cluster)
88 void VFATWriteCluster(PDEVICE_EXTENSION DeviceExt, PVOID Buffer, ULONG Cluster)
89 NTSTATUS FsdReadFile(PDEVICE_EXTENSION DeviceExt, PFILE_OBJECT FileObject,
90 PVOID Buffer, ULONG Length, ULONG ReadOffset)
91 lit Length octets d'un fichier
92 NTSTATUS FsdWriteFile(PDEVICE_EXTENSION DeviceExt, PFILE_OBJECT FileObject,
93 PVOID Buffer, ULONG Length, ULONG WriteOffset)
94 NTSTATUS FsdMount(PDEVICE_OBJECT DeviceToMount)
95 NTSTATUS FsdGetStandardInformation(PFCB FCB, PDEVICE_OBJECT DeviceObject,
96 PFILE_STANDARD_INFORMATION StandardInfo);
97