Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

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