123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- /*
- win32/nt.h - Zip 3
- Copyright (c) 1990-2003 Info-ZIP. All rights reserved.
- See the accompanying file LICENSE, version 2003-May-08 or later
- (the contents of which are also included in zip.h) for terms of use.
- If, for some reason, both of these files are missing, the Info-ZIP license
- also may be found at: ftp://ftp.info-zip.org/pub/infozip/license.html
- */
- #ifndef _NT_ZIP_H
- #define _NT_ZIP_H
- /* central header for EF_NTSD "SD" extra field */
- #define EF_NTSD_MAX_VER_SUPPORT (0)
- /* describes maximum ver# we know how to handle */
- typedef struct
- {
- USHORT nID;
- USHORT nSize;
- ULONG lSize;
- }
- EF_NTSD_C_HEADER, *PEF_NTSD_C_HEADER;
- #define EF_NTSD_C_LEN (sizeof(EF_NTSD_C_HEADER))
- /* local header for EF_NTSD "SD" extra field */
- #pragma pack(1) /* bytes following structure immediately follow BYTE Version */
- typedef struct
- {
- USHORT nID; /* tag for this extra block type */
- USHORT nSize; /* total data size for this block */
- ULONG lSize; /* uncompressed security descriptor data size */
- BYTE Version; /* Version of uncompressed security descriptor data format */
- }
- IZ_PACKED EF_NTSD_L_HEADER, *PEF_NTSD_L_HEADER;
- #pragma pack()
- /* ...followed by... */
- /* SHORT CType; compression type */
- /* ULONG EACRC; CRC value for uncompressed security descriptor data */
- /* <var.> Variable length data */
- #define EF_NTSD_L_LEN (EF_NTSD_C_LEN + sizeof(BYTE))
- /* avoid alignment size computation */
- #define NTSD_BUFFERSIZE (1024) /* threshold to cause malloc() */
- #define OVERRIDE_BACKUP 1 /* we have SeBackupPrivilege on remote */
- #define OVERRIDE_RESTORE 2 /* we have SeRestorePrivilege on remote */
- #define OVERRIDE_SACL 4 /* we have SeSystemSecurityPrivilege on remote */
- typedef struct {
- BOOL bValid; /* are our contents valid? */
- BOOL bProcessDefer; /* process deferred entry yet? */
- BOOL bUsePrivileges; /* use privilege overrides? */
- DWORD dwFileSystemFlags; /* describes target file system */
- BOOL bRemote; /* is volume remote? */
- DWORD dwRemotePrivileges; /* relevant only on remote volumes */
- DWORD dwFileAttributes;
- char RootPath[MAX_PATH+1]; /* path to network / filesystem */
- } VOLUMECAPS, *PVOLUMECAPS, *LPVOLUMECAPS;
- BOOL SecurityGet(char *resource, PVOLUMECAPS VolumeCaps, unsigned char *buffer,
- DWORD *cbBuffer);
- BOOL ZipGetVolumeCaps(char *rootpath, char *name, PVOLUMECAPS VolumeCaps);
- #endif /* _NT_ZIP_H */
|