rsxntwin.h
上传用户:andy_li
上传日期:2007-01-06
资源大小:1019k
文件大小:5k
源码类别:

压缩解压

开发平台:

MultiPlatform

  1. /* rsxntwin.h
  2.  *
  3.  * fills some gaps in the rsxnt 1.3 win32 header files (<windows.h>) that are
  4.  * required for compiling Info-ZIP sources for Win NT / Win 95
  5.  */
  6. #ifdef __RSXNT__
  7. #if !defined (_RSXNTWIN_H)
  8. #define _RSXNTWIN_H
  9. #ifdef TFUNCT   /* TFUNCT is undefined when MSSDK headers are used */
  10. #ifdef __cplusplus
  11. extern "C" {
  12. #endif
  13. #define PASCAL __stdcall
  14. #define ANYSIZE_ARRAY 1
  15. #ifndef TIME_ZONE_ID_UNKNOWN
  16. #  define TIME_ZONE_ID_UNKNOWN  0
  17. #endif
  18. #define FILE_ATTRIBUTE_HIDDEN   0x00000002
  19. #define FILE_ATTRIBUTE_SYSTEM   0x00000004
  20. #define FILE_SHARE_DELETE       0x00000004
  21. #define FILE_PERSISTENT_ACLS    0x00000008
  22. #define HFILE_ERROR        ((HFILE)-1)
  23. #define FS_PERSISTENT_ACLS      FILE_PERSISTENT_ACLS
  24. BOOL WINAPI DosDateTimeToFileTime(WORD, WORD, LPFILETIME);
  25. #ifndef SetVolumeLabel
  26. #define SetVolumeLabel TFUNCT(SetVolumeLabel)
  27. #endif
  28. BOOL WINAPI SetVolumeLabel(LPCTSTR, LPCTSTR);
  29. #ifndef GetDriveType
  30. #define GetDriveType TFUNCT(GetDriveType)
  31. #endif
  32. DWORD GetDriveType(LPCTSTR);
  33. #define DRIVE_UNKNOWN     0
  34. #define DRIVE_REMOVABLE   2
  35. #define DRIVE_FIXED       3
  36. #define DRIVE_REMOTE      4
  37. #define DRIVE_CDROM       5
  38. #define DRIVE_RAMDISK     6
  39. #ifndef SearchPath
  40. #define SearchPath TFUNCT(SearchPath)
  41. #endif
  42. BOOL WINAPI SearchPath(LPCTSTR, LPCTSTR, LPCTSTR, UINT, LPTSTR, LPTSTR *);
  43. #define ERROR_SUCCESS                   0
  44. #define ERROR_INSUFFICIENT_BUFFER       122
  45. LONG WINAPI InterlockedExchange(LPLONG, LONG);
  46. #define ACCESS_SYSTEM_SECURITY          0x01000000L
  47. typedef PVOID PSECURITY_DESCRIPTOR;
  48. typedef PVOID PSID;
  49. typedef struct _ACL {
  50.     BYTE  AclRevision;
  51.     BYTE  Sbz1;
  52.     WORD   AclSize;
  53.     WORD   AceCount;
  54.     WORD   Sbz2;
  55. } ACL;
  56. typedef ACL *PACL;
  57. typedef struct _LUID {
  58.     DWORD LowPart;
  59.     LONG HighPart;
  60. } LUID, *PLUID;
  61. typedef struct _LUID_AND_ATTRIBUTES {
  62.     LUID Luid;
  63.     DWORD Attributes;
  64.     } LUID_AND_ATTRIBUTES, * PLUID_AND_ATTRIBUTES;
  65. typedef struct _TOKEN_PRIVILEGES {
  66.     DWORD PrivilegeCount;
  67.     LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY];
  68. } TOKEN_PRIVILEGES, *PTOKEN_PRIVILEGES;
  69. #define TOKEN_QUERY             0x0008
  70. #define TOKEN_ADJUST_PRIVILEGES 0x0020
  71. BOOL WINAPI OpenProcessToken(HANDLE, DWORD, PHANDLE);
  72. BOOL WINAPI AdjustTokenPrivileges(HANDLE, BOOL, PTOKEN_PRIVILEGES, DWORD,
  73.                 PTOKEN_PRIVILEGES, PDWORD);
  74. #ifndef LookupPrivilegeValue
  75. #define LookupPrivilegeValue TFUNCT(LookupPrivilegeValue)
  76. #endif
  77. BOOL WINAPI LookupPrivilegeValue(LPCTSTR, LPCTSTR, PLUID);
  78. typedef DWORD SECURITY_INFORMATION, *PSECURITY_INFORMATION;
  79. #define OWNER_SECURITY_INFORMATION      0x00000001L
  80. #define GROUP_SECURITY_INFORMATION      0x00000002L
  81. #define DACL_SECURITY_INFORMATION       0x00000004L
  82. #define SACL_SECURITY_INFORMATION       0x00000008L
  83. typedef WORD SECURITY_DESCRIPTOR_CONTROL, *PSECURITY_DESCRIPTOR_CONTROL;
  84. #define SE_DACL_PRESENT         0x0004
  85. #define SE_SACL_PRESENT         0x0010
  86. #define SE_PRIVILEGE_ENABLED    0x00000002L
  87. #define SE_SECURITY_NAME                  TEXT("SeSecurityPrivilege")
  88. #define SE_BACKUP_NAME                    TEXT("SeBackupPrivilege")
  89. #define SE_RESTORE_NAME                   TEXT("SeRestorePrivilege")
  90. BOOL WINAPI GetKernelObjectSecurity(HANDLE, SECURITY_INFORMATION,
  91.                 PSECURITY_DESCRIPTOR, DWORD, LPDWORD);
  92. BOOL WINAPI SetKernelObjectSecurity(HANDLE, SECURITY_INFORMATION,
  93.                 PSECURITY_DESCRIPTOR);
  94. BOOL WINAPI IsValidSid(PSID);
  95. BOOL WINAPI IsValidAcl(PACL);
  96. BOOL WINAPI InitializeSecurityDescriptor(PSECURITY_DESCRIPTOR);
  97. BOOL WINAPI IsValidSecurityDescriptor(PSECURITY_DESCRIPTOR);
  98. DWORD WINAPI GetSecurityDescriptorLength(PSECURITY_DESCRIPTOR);
  99. BOOL WINAPI GetSecurityDescriptorControl(PSECURITY_DESCRIPTOR,
  100.                 PSECURITY_DESCRIPTOR_CONTROL, LPDWORD);
  101. BOOL WINAPI SetSecurityDescriptorControl(PSECURITY_DESCRIPTOR,
  102.                 SECURITY_DESCRIPTOR_CONTROL, SECURITY_DESCRIPTOR_CONTROL);
  103. BOOL WINAPI GetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR,
  104.                                       LPBOOL, PACL *, LPBOOL);
  105. BOOL WINAPI SetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR, BOOL, PACL, BOOL);
  106. BOOL WINAPI GetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR,
  107.                                       LPBOOL, PACL *, LPBOOL);
  108. BOOL WINAPI SetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR, BOOL, PACL, BOOL);
  109. BOOL WINAPI GetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR, PSID *, LPBOOL);
  110. BOOL WINAPI SetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR, PSID, BOOL);
  111. BOOL WINAPI GetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR, PSID *, LPBOOL);
  112. BOOL WINAPI SetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR, PSID, BOOL);
  113. VOID WINAPI InitializeCriticalSection();
  114. #ifdef __cplusplus
  115. }
  116. #endif
  117. #endif /* TFUNCT */
  118. #endif /* !defined (_RSXNTWIN_H) */
  119. #endif /* __RSXNT__ */