1. implemented SetFileValidData()
authorThomas Bluemel <thomas@reactsoft.com>
Thu, 18 Mar 2004 16:19:26 +0000 (16:19 +0000)
committerThomas Bluemel <thomas@reactsoft.com>
Thu, 18 Mar 2004 16:19:26 +0000 (16:19 +0000)
2. updated FILE_INFORMATION_CLASS

svn path=/trunk/; revision=8780

reactos/include/ddk/fstypes.h
reactos/include/napi/types.h
reactos/lib/kernel32/file/file.c
reactos/lib/kernel32/misc/stubs.c

index c8d7519..ba198a1 100644 (file)
@@ -1,6 +1,6 @@
 #ifndef __INCLUDE_DDK_FSTYPES_H
 #define __INCLUDE_DDK_FSTYPES_H
-/* $Id: fstypes.h,v 1.14 2004/03/14 09:21:41 weiden Exp $ */
+/* $Id: fstypes.h,v 1.15 2004/03/18 16:19:25 weiden Exp $ */
 
 #ifndef __USE_W32API
 
@@ -21,6 +21,10 @@ typedef struct _FILE_LINK_INFORMATION {
     WCHAR   FileName[1];
 } FILE_LINK_INFORMATION, *PFILE_LINK_INFORMATION;
 
+typedef struct _FILE_VALID_DATA_LENGTH_INFORMATION {
+    LARGE_INTEGER  ValidDataLength;
+} FILE_VALID_DATA_LENGTH_INFORMATION, *PFILE_VALID_DATA_LENGTH_INFORMATION;
+
 typedef NTSTATUS (*PCOMPLETE_LOCK_IRP_ROUTINE) (
     IN PVOID    Context,
     IN PIRP     Irp
index d8a35f9..30287b3 100644 (file)
@@ -64,19 +64,19 @@ typedef enum _FILE_INFORMATION_CLASS
   FileMailslotQueryInformation,
   FileMailslotSetInformation,
   FileCompressionInformation,
-  FileCopyOnWriteInformation,
+  FileObjectIdInformation,
   FileCompletionInformation,
   FileMoveClusterInformation,
-  FileOleClassIdInformation,
-  FileOleStateBitsInformation,
+  FileQuotaInformation,
+  FileReparsePointInformation,
   FileNetworkOpenInformation,
-  FileObjectIdInformation,
-  FileOleAllInformation,
-  FileOleDirectoryInformation,
-  FileContentIndexInformation,
-  FileInheritContentIndexInformation,
-  FileOleInformation,
-  FileMaximumInformation,
+  FileAttributeTagInformation,
+  FileTrackingInformation,
+  FileIdBothDirectoryInformation,
+  FileIdFullDirectoryInformation,
+  FileValidDataLengthInformation,
+  FileShortNameInformation,
+  FileMaximumInformation
 } FILE_INFORMATION_CLASS, *PFILE_INFORMATION_CLASS;
 
 typedef enum _SECTION_INHERIT {
index 731daa1..330ff39 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: file.c,v 1.51 2004/03/14 13:20:10 weiden Exp $
+/* $Id: file.c,v 1.52 2004/03/18 16:19:25 weiden Exp $
  *
  * COPYRIGHT:       See COPYING in the top level directory
  * PROJECT:         ReactOS system libraries
@@ -13,6 +13,7 @@
 /* INCLUDES *****************************************************************/
 
 #include <k32.h>
+#include <ddk/ntifs.h>
 
 #define NDEBUG
 #include "../include/debug.h"
@@ -1158,4 +1159,37 @@ SetEndOfFile(HANDLE hFile)
 
 }
 
+
+/*
+ * @implemented
+ */
+BOOL
+STDCALL
+SetFileValidData(
+    HANDLE hFile,
+    LONGLONG ValidDataLength
+    )
+{
+       IO_STATUS_BLOCK IoStatusBlock;
+       FILE_VALID_DATA_LENGTH_INFORMATION ValidDataLengthInformation;
+       NTSTATUS Status;
+       
+       ValidDataLengthInformation.ValidDataLength.QuadPart = ValidDataLength;
+       
+       Status = NtSetInformationFile(
+                                               hFile,
+                                               &IoStatusBlock,  //out
+                                               &ValidDataLengthInformation,
+                                               sizeof(FILE_VALID_DATA_LENGTH_INFORMATION),
+                                               FileValidDataLengthInformation
+                                               );
+
+       if (!NT_SUCCESS(Status)){
+               SetLastErrorByStatus(Status);
+               return FALSE;
+       }
+       
+       return TRUE;
+}
+
 /* EOF */
index db38a68..df17c38 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: stubs.c,v 1.68 2004/03/14 18:16:39 weiden Exp $
+/* $Id: stubs.c,v 1.69 2004/03/18 16:19:26 weiden Exp $
  *
  * KERNEL32.DLL stubs (unimplemented functions)
  * Remove from this file, if you implement them.
@@ -1393,20 +1393,6 @@ SetCriticalSectionSpinCount(
     return 0;
 }
 
-/*
- * @unimplemented
- */
-BOOL
-STDCALL
-SetFileValidData(
-    HANDLE hFile,
-    LONGLONG ValidDataLength
-    )
-{
-    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-    return 0;
-}
-
 /*
  * @unimplemented
  */