1/* 2 win32/rsxntwin.h - Zip 3 3 4 Copyright (c) 1990-2007 Info-ZIP. All rights reserved. 5 6 See the accompanying file LICENSE, version 2007-Mar-4 or later 7 (the contents of which are also included in zip.h) for terms of use. 8 If, for some reason, all these files are missing, the Info-ZIP license 9 also may be found at: ftp://ftp.info-zip.org/pub/infozip/license.html 10*/ 11/* rsxntwin.h 12 * 13 * fills some gaps in the rsxnt 1.3 win32 header files (<windows.h>) that are 14 * required for compiling Info-ZIP sources for Win NT / Win 95 15 */ 16 17#ifdef __RSXNT__ 18#if !defined (_RSXNTWIN_H) 19#define _RSXNTWIN_H 20 21#ifdef TFUNCT /* TFUNCT is undefined when MSSDK headers are used */ 22 23#ifdef __cplusplus 24extern "C" { 25#endif 26 27#define PASCAL __stdcall 28 29#define ANYSIZE_ARRAY 1 30 31#ifndef TIME_ZONE_ID_UNKNOWN 32# define TIME_ZONE_ID_UNKNOWN 0 33#endif 34#ifndef TIME_ZONE_ID_INVALID 35# define TIME_ZONE_ID_INVALID (DWORD)0xFFFFFFFFL 36#endif 37 38#define FILE_ATTRIBUTE_HIDDEN 0x00000002 39#define FILE_ATTRIBUTE_SYSTEM 0x00000004 40 41#define FILE_SHARE_DELETE 0x00000004 42 43#define FILE_PERSISTENT_ACLS 0x00000008 44 45#define HFILE_ERROR ((HFILE)-1) 46 47#define FS_PERSISTENT_ACLS FILE_PERSISTENT_ACLS 48 49 50BOOL WINAPI DosDateTimeToFileTime(WORD, WORD, LPFILETIME); 51 52 53#ifndef SetVolumeLabel 54#define SetVolumeLabel TFUNCT(SetVolumeLabel) 55#endif 56BOOL WINAPI SetVolumeLabel(LPCTSTR, LPCTSTR); 57 58 59#ifndef GetDriveType 60#define GetDriveType TFUNCT(GetDriveType) 61#endif 62DWORD GetDriveType(LPCTSTR); 63 64#define DRIVE_UNKNOWN 0 65#define DRIVE_REMOVABLE 2 66#define DRIVE_FIXED 3 67#define DRIVE_REMOTE 4 68#define DRIVE_CDROM 5 69#define DRIVE_RAMDISK 6 70 71#ifndef SearchPath 72#define SearchPath TFUNCT(SearchPath) 73#endif 74BOOL WINAPI SearchPath(LPCTSTR, LPCTSTR, LPCTSTR, UINT, LPTSTR, LPTSTR *); 75 76#define ERROR_SUCCESS 0 77#define ERROR_INSUFFICIENT_BUFFER 122 78 79LONG WINAPI InterlockedExchange(LPLONG, LONG); 80 81#define ACCESS_SYSTEM_SECURITY 0x01000000L 82 83typedef PVOID PSECURITY_DESCRIPTOR; 84typedef PVOID PSID; 85typedef struct _ACL { 86 BYTE AclRevision; 87 BYTE Sbz1; 88 WORD AclSize; 89 WORD AceCount; 90 WORD Sbz2; 91} ACL; 92typedef ACL *PACL; 93 94typedef struct _LUID { 95 DWORD LowPart; 96 LONG HighPart; 97} LUID, *PLUID; 98 99typedef struct _LUID_AND_ATTRIBUTES { 100 LUID Luid; 101 DWORD Attributes; 102 } LUID_AND_ATTRIBUTES, * PLUID_AND_ATTRIBUTES; 103 104typedef struct _TOKEN_PRIVILEGES { 105 DWORD PrivilegeCount; 106 LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY]; 107} TOKEN_PRIVILEGES, *PTOKEN_PRIVILEGES; 108 109#define TOKEN_QUERY 0x0008 110#define TOKEN_ADJUST_PRIVILEGES 0x0020 111 112BOOL WINAPI OpenProcessToken(HANDLE, DWORD, PHANDLE); 113BOOL WINAPI AdjustTokenPrivileges(HANDLE, BOOL, PTOKEN_PRIVILEGES, DWORD, 114 PTOKEN_PRIVILEGES, PDWORD); 115 116#ifndef LookupPrivilegeValue 117#define LookupPrivilegeValue TFUNCT(LookupPrivilegeValue) 118#endif 119BOOL WINAPI LookupPrivilegeValue(LPCTSTR, LPCTSTR, PLUID); 120 121typedef DWORD SECURITY_INFORMATION, *PSECURITY_INFORMATION; 122#define OWNER_SECURITY_INFORMATION 0x00000001L 123#define GROUP_SECURITY_INFORMATION 0x00000002L 124#define DACL_SECURITY_INFORMATION 0x00000004L 125#define SACL_SECURITY_INFORMATION 0x00000008L 126 127typedef WORD SECURITY_DESCRIPTOR_CONTROL, *PSECURITY_DESCRIPTOR_CONTROL; 128#define SE_DACL_PRESENT 0x0004 129#define SE_SACL_PRESENT 0x0010 130 131#define SE_PRIVILEGE_ENABLED 0x00000002L 132 133#define SE_SECURITY_NAME TEXT("SeSecurityPrivilege") 134#define SE_BACKUP_NAME TEXT("SeBackupPrivilege") 135#define SE_RESTORE_NAME TEXT("SeRestorePrivilege") 136 137BOOL WINAPI GetKernelObjectSecurity(HANDLE, SECURITY_INFORMATION, 138 PSECURITY_DESCRIPTOR, DWORD, LPDWORD); 139BOOL WINAPI SetKernelObjectSecurity(HANDLE, SECURITY_INFORMATION, 140 PSECURITY_DESCRIPTOR); 141BOOL WINAPI IsValidSid(PSID); 142BOOL WINAPI IsValidAcl(PACL); 143BOOL WINAPI InitializeSecurityDescriptor(PSECURITY_DESCRIPTOR); 144BOOL WINAPI IsValidSecurityDescriptor(PSECURITY_DESCRIPTOR); 145DWORD WINAPI GetSecurityDescriptorLength(PSECURITY_DESCRIPTOR); 146BOOL WINAPI GetSecurityDescriptorControl(PSECURITY_DESCRIPTOR, 147 PSECURITY_DESCRIPTOR_CONTROL, LPDWORD); 148BOOL WINAPI SetSecurityDescriptorControl(PSECURITY_DESCRIPTOR, 149 SECURITY_DESCRIPTOR_CONTROL, SECURITY_DESCRIPTOR_CONTROL); 150BOOL WINAPI GetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR, 151 LPBOOL, PACL *, LPBOOL); 152BOOL WINAPI SetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR, BOOL, PACL, BOOL); 153BOOL WINAPI GetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR, 154 LPBOOL, PACL *, LPBOOL); 155BOOL WINAPI SetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR, BOOL, PACL, BOOL); 156BOOL WINAPI GetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR, PSID *, LPBOOL); 157BOOL WINAPI SetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR, PSID, BOOL); 158BOOL WINAPI GetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR, PSID *, LPBOOL); 159BOOL WINAPI SetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR, PSID, BOOL); 160VOID WINAPI InitializeCriticalSection(); 161 162#ifdef __cplusplus 163} 164#endif 165 166#endif /* TFUNCT */ 167 168#ifndef CP_UTF8 169# define CP_UTF8 65001 /* UTF-8 translation */ 170#endif 171 172#endif /* !defined (_RSXNTWIN_H) */ 173#endif /* __RSXNT__ */ 174