:pserver:cvsanon@mok.lvcm.com:/CVS/ReactOS reactos
[reactos.git] / drivers / fs / vfat / 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