home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 9 Archive / 09-Archive.zip / zip22.zip / win32 / nt.h < prev    next >
C/C++ Source or Header  |  1997-08-17  |  2KB  |  63 lines

  1. #ifndef _NT_ZIP_H
  2. #define _NT_ZIP_H
  3.  
  4. /* central header for EF_NTSD "SD" extra field */
  5.  
  6. #define EF_NTSD_MAX_VER_SUPPORT (0) /* describes maximum ver# we know how to handle */
  7.  
  8. typedef struct
  9. {
  10.   USHORT nID;
  11.   USHORT nSize;
  12.   ULONG lSize;
  13. }
  14. EF_NTSD_C_HEADER, *PEF_NTSD_C_HEADER;
  15.  
  16. #define EF_NTSD_C_LEN (sizeof(EF_NTSD_C_HEADER))
  17.  
  18. /* local header for EF_NTSD "SD" extra field */
  19.  
  20. #pragma pack(1) /* bytes following structure immediately follow BYTE Version */
  21.  
  22. typedef struct
  23. {
  24.   USHORT nID;   /* tag for this extra block type */
  25.   USHORT nSize; /* total data size for this block */
  26.   ULONG lSize;  /* uncompressed security descriptor data size */
  27.   BYTE Version; /* Version of uncompressed security descriptor data format */
  28. }
  29. EF_NTSD_L_HEADER, *PEF_NTSD_L_HEADER;
  30.  
  31. #pragma pack()
  32.  
  33. /*  ...followed by... */
  34. /*  SHORT CType;  compression type */
  35. /*  ULONG EACRC;  CRC value for uncompressed security descriptor data */
  36. /*  <var.> Variable length data */
  37.  
  38.  
  39. #define EF_NTSD_L_LEN (EF_NTSD_C_LEN + sizeof(BYTE)) /* avoid alignment size computation */
  40.  
  41. #define NTSD_BUFFERSIZE (1024)  /* threshold to cause malloc() */
  42.  
  43. #define OVERRIDE_BACKUP     1   /* we have SeBackupPrivilege on remote */
  44. #define OVERRIDE_RESTORE    2   /* we have SeRestorePrivilege on remote */
  45. #define OVERRIDE_SACL       4   /* we have SeSystemSecurityPrivilege on remote */
  46.  
  47. typedef struct {
  48.     BOOL bValid;                /* are our contents valid? */
  49.     BOOL bProcessDefer;         /* process deferred entry yet? */
  50.     BOOL bUsePrivileges;        /* use privilege overrides? */
  51.     DWORD dwFileSystemFlags;    /* describes target file system */
  52.     BOOL bRemote;               /* is volume remote? */
  53.     DWORD dwRemotePrivileges;   /* relevant only on remote volumes */
  54.     DWORD dwFileAttributes;
  55.     char RootPath[MAX_PATH+1];  /* path to network / filesystem */
  56. } VOLUMECAPS, *PVOLUMECAPS, *LPVOLUMECAPS;
  57.  
  58. BOOL SecurityGet(char *resource, PVOLUMECAPS VolumeCaps, unsigned char *buffer, unsigned long *cbBuffer);
  59. BOOL ZipGetVolumeCaps(char *rootpath, char *name, PVOLUMECAPS VolumeCaps);
  60.  
  61. #endif /* _NT_ZIP_H */
  62.  
  63.