Do you really need finally clause in this case? It's not the most
beautiful way when doing it via PSEH.
WBR,
Aleksey.
On Oct 10, 2008, at 11:26 PM, pschweitzer(a)svn.reactos.org wrote:
  Author: pschweitzer
 Date: Fri Oct 10 14:26:42 2008
 New Revision: 36709
 URL: 
http://svn.reactos.org/svn/reactos?rev=36709&view=rev
 Log:
 Fixed a FIXME
 A bit cleaned header
 Modified:
     branches/pierre-fsd/drivers/filesystems/fastfat/finfo.c
     branches/pierre-fsd/drivers/filesystems/fastfat/vfat.h
 Modified: branches/pierre-fsd/drivers/filesystems/fastfat/finfo.c
 URL: 
http://svn.reactos.org/svn/reactos/branches/pierre-fsd/drivers/
 filesystems/fastfat/finfo.c?rev=36709&r1=36708&r2=36709&view=diff
 ======================================================================
 ========
 --- branches/pierre-fsd/drivers/filesystems/fastfat/finfo.c
 [iso-8859-1] (original)
 +++ branches/pierre-fsd/drivers/filesystems/fastfat/finfo.c
 [iso-8859-1] Fri Oct 10 14:26:42 2008
 @@ -443,6 +443,10 @@
  }
 +_SEH_FINALLYFUNC(VfatGetEaInformationFinal_PSEH)
 +{
 +}
 +
  static NTSTATUS
  VfatGetEaInformation(PFILE_OBJECT FileObject,
                     PVFATFCB Fcb,
 @@ -452,15 +456,19 @@
  {
      PDEVICE_EXTENSION DeviceExt = DeviceObject->DeviceExtension;
 -    /* FIXME - use SEH to access the buffer! */
 -    Info->EaSize = 0;
 -    *BufferLength -= sizeof(*Info);
 -    if (DeviceExt->FatInfo.FatType == FAT12 ||
 -        DeviceExt->FatInfo.FatType == FAT16)
 -    {
 -        /* FIXME */
 -        DPRINT1("VFAT: FileEaInformation not implemented!\n");
 -    }
 +    _SEH_TRY
 +    {
 +        RtlZeroMemory(Info, sizeof(FILE_EA_INFORMATION));
 +        if (DeviceExt->FatInfo.FatType == FAT12 ||
 +            DeviceExt->FatInfo.FatType == FAT16)
 +        {
 +            /* FIXME */
 +            DPRINT1("VFAT: FileEaInformation not implemented!\n");
 +        }
 +        *BufferLength -= sizeof(FILE_EA_INFORMATION);
 +    }
 +    _SEH_FINALLY(VfatGetEaInformationFinal_PSEH)
 +    _SEH_END;
      return STATUS_SUCCESS;
  }
 Modified: branches/pierre-fsd/drivers/filesystems/fastfat/vfat.h
 URL: 
http://svn.reactos.org/svn/reactos/branches/pierre-fsd/drivers/
 filesystems/fastfat/vfat.h?rev=36709&r1=36708&r2=36709&view=diff
 ======================================================================
 ========
 --- branches/pierre-fsd/drivers/filesystems/fastfat/vfat.h
 [iso-8859-1] (original)
 +++ branches/pierre-fsd/drivers/filesystems/fastfat/vfat.h
 [iso-8859-1] Fri Oct 10 14:26:42 2008
 @@ -608,15 +608,7 @@
  /*  --------------------------------------------------------
 string.c  */
 -VOID
 -vfatSplitPathName(PUNICODE_STRING PathNameU,
 -                PUNICODE_STRING DirNameU,
 -                PUNICODE_STRING FileNameU);
 -
  BOOLEAN vfatIsLongIllegal(WCHAR c);
 -
 -BOOLEAN wstrcmpjoki (PWSTR s1,
 -                     PWSTR s2);
  /*  -----------------------------------------------------------
 fat.c  */
 @@ -702,6 +694,11 @@
  /*  -----------------------------------------------------------
 fcb.c  */
 +VOID
 +vfatSplitPathName(PUNICODE_STRING PathNameU,
 +                PUNICODE_STRING DirNameU,
 +                PUNICODE_STRING FileNameU);
 +
  PVFATFCB vfatNewFCB (PDEVICE_EXTENSION  pVCB,
                          PUNICODE_STRING pFileNameU);