file.h
Upload User: xhy777
Upload Date: 2007-02-14
Package Size: 24088k
Code Size: 3k
Category:

Windows Kernel

Development Platform:

Visual C++

  1. /*
  2.  * file.h - File routines module description.
  3.  */
  4. /* Constants
  5.  ************/
  6. /*
  7.  * maximum length of unique name created by MakeUniqueName(), including null
  8.  * terminator
  9.  */
  10. #define MAX_UNIQUE_NAME_LEN            (8 + 1 + 3 + 1)
  11. /* file-related flag combinations */
  12. #define ALL_FILE_ACCESS_FLAGS          (GENERIC_READ |
  13.                                         GENERIC_WRITE)
  14. #define ALL_FILE_SHARING_FLAGS         (FILE_SHARE_READ |
  15.                                         FILE_SHARE_WRITE)
  16. #ifdef WINNT
  17. #define ALL_FILE_ATTRIBUTES            (FILE_ATTRIBUTE_READONLY |
  18.                                             FILE_ATTRIBUTE_HIDDEN |
  19.                                             FILE_ATTRIBUTE_SYSTEM |
  20.                                             FILE_ATTRIBUTE_DIRECTORY |
  21.                                             FILE_ATTRIBUTE_ARCHIVE |
  22.                                             FILE_ATTRIBUTE_NORMAL |
  23.                                             FILE_ATTRIBUTE_TEMPORARY)
  24. #else
  25. #define ALL_FILE_ATTRIBUTES            (FILE_ATTRIBUTE_READONLY |
  26.                                             FILE_ATTRIBUTE_HIDDEN |
  27.                                             FILE_ATTRIBUTE_SYSTEM |
  28.                                             FILE_ATTRIBUTE_DIRECTORY |
  29.                                             FILE_ATTRIBUTE_ARCHIVE |
  30.                                             FILE_ATTRIBUTE_NORMAL |
  31.                                             FILE_ATTRIBUTE_TEMPORARY |
  32.                                             FILE_ATTRIBUTE_ATOMIC_WRITE |
  33.                                             FILE_ATTRIBUTE_XACTION_WRITE )
  34. #endif
  35. #define ALL_FILE_FLAGS                 (FILE_FLAG_WRITE_THROUGH |
  36.                                         FILE_FLAG_OVERLAPPED |
  37.                                         FILE_FLAG_NO_BUFFERING |
  38.                                         FILE_FLAG_RANDOM_ACCESS |
  39.                                         FILE_FLAG_SEQUENTIAL_SCAN |
  40.                                         FILE_FLAG_DELETE_ON_CLOSE |
  41.                                         FILE_FLAG_BACKUP_SEMANTICS |
  42.                                         FILE_FLAG_POSIX_SEMANTICS)
  43. #define ALL_FILE_ATTRIBUTES_AND_FLAGS  (ALL_FILE_ATTRIBUTES |
  44.                                         ALL_FILE_FLAGS)
  45. /* Macros
  46.  *********/
  47. /* file attribute manipulation */
  48. #define IS_ATTR_DIR(attr)              (IS_FLAG_SET((attr), FILE_ATTRIBUTE_DIRECTORY))
  49. #define IS_ATTR_VOLUME(attr)           (IS_FLAG_SET((attr), FILE_ATTRIBUTE_VOLUME))
  50. /* Prototypes
  51.  *************/
  52. PUBLIC_CODE void BeginComp(void);
  53. PUBLIC_CODE void EndComp(void);
  54. PUBLIC_CODE TWINRESULT CompareFilesByHandle(HANDLE, HANDLE, PBOOL);
  55. PUBLIC_CODE TWINRESULT CompareFilesByName(HPATH, HPATH, PBOOL);