Give the context menu its proper behaviour and modify TrackPopupMenu
[wine/testsucceed.git] / include / ntdll.h
blobccc36495f72b81cc37ce26f02374040115e2efde
1 #ifndef __WINE_NTDLL_H
2 #define __WINE_NTDLL_H
3 /* ntdll.h
5 * contains NT internal defines that don't show on the Win32 API level
7 * Copyright 1997 Marcus Meissner
8 */
10 #include "winbase.h"
12 /* assumes windows.h already included */
14 #ifdef __cplusplus
15 extern "C" {
16 #endif
18 typedef DWORD NTSTATUS;
20 /* Security Ids of NT */
22 /* Moved to windows.h
23 typedef struct {
24 BYTE Value[6];
25 } SID_IDENTIFIER_AUTHORITY,*PSID_IDENTIFIER_AUTHORITY,*PSID_IDENTIFIER_AUTHORITY;
28 /* Moved to windows.h
29 typedef struct _SID {
30 BYTE Revision;
31 BYTE SubAuthorityCount;
32 SID_IDENTIFIER_AUTHORITY IdentifierAuthority;
33 DWORD SubAuthority[1];
34 } SID,*PSID,*PSID;
37 #define SID_REVISION (1) /* Current revision */
38 #define SID_MAX_SUB_AUTHORITIES (15) /* current max subauths */
39 #define SID_RECOMMENDED_SUB_AUTHORITIES (1) /* recommended subauths */
41 /* ACLs of NT */
43 #define ACL_REVISION 2
45 #define ACL_REVISION1 1
46 #define ACL_REVISION2 2
48 /* Moved to windows.h
49 typedef struct _ACL {
50 BYTE AclRevision;
51 BYTE Sbz1;
52 WORD AclSize;
53 WORD AceCount;
54 WORD Sbz2;
55 } ACL,*LPACL;
58 /* ACEs, directly starting after an ACL */
59 typedef struct _ACE_HEADER {
60 BYTE AceType;
61 BYTE AceFlags;
62 WORD AceSize;
63 } ACE_HEADER,*LPACE_HEADER;
65 /* AceType */
66 #define ACCESS_ALLOWED_ACE_TYPE 0
67 #define ACCESS_DENIED_ACE_TYPE 1
68 #define SYSTEM_AUDIT_ACE_TYPE 2
69 #define SYSTEM_ALARM_ACE_TYPE 3
71 /* inherit AceFlags */
72 #define OBJECT_INHERIT_ACE 0x01
73 #define CONTAINER_INHERIT_ACE 0x02
74 #define NO_PROPAGATE_INHERIT_ACE 0x04
75 #define INHERIT_ONLY_ACE 0x08
76 #define VALID_INHERIT_FLAGS 0x0F
78 /* AceFlags mask for what events we (should) audit */
79 #define SUCCESSFUL_ACCESS_ACE_FLAG 0x40
80 #define FAILED_ACCESS_ACE_FLAG 0x80
82 /* different ACEs depending on AceType
83 * SidStart marks the begin of a SID
84 * so the thing finally looks like this:
85 * 0: ACE_HEADER
86 * 4: ACCESS_MASK
87 * 8... : SID
89 typedef struct _ACCESS_ALLOWED_ACE {
90 ACE_HEADER Header;
91 DWORD Mask;
92 DWORD SidStart;
93 } ACCESS_ALLOWED_ACE,*LPACCESS_ALLOWED_ACE;
95 typedef struct _ACCESS_DENIED_ACE {
96 ACE_HEADER Header;
97 DWORD Mask;
98 DWORD SidStart;
99 } ACCESS_DENIED_ACE,*LPACCESS_DENIED_ACE;
101 typedef struct _SYSTEM_AUDIT_ACE {
102 ACE_HEADER Header;
103 DWORD Mask;
104 DWORD SidStart;
105 } SYSTEM_AUDIT_ACE,*LPSYSTEM_AUDIT_ACE;
107 typedef struct _SYSTEM_ALARM_ACE {
108 ACE_HEADER Header;
109 DWORD Mask;
110 DWORD SidStart;
111 } SYSTEM_ALARM_ACE,*LPSYSTEM_ALARM_ACE;
113 #define SECURITY_DESCRIPTOR_REVISION 1
114 #define SECURITY_DESCRIPTOR_REVISION1 1
117 typedef WORD SECURITY_DESCRIPTOR_CONTROL;
120 #define SE_OWNER_DEFAULTED 0x0001
121 #define SE_GROUP_DEFAULTED 0x0002
122 #define SE_DACL_PRESENT 0x0004
123 #define SE_DACL_DEFAULTED 0x0008
124 #define SE_SACL_PRESENT 0x0010
125 #define SE_SACL_DEFAULTED 0x0020
126 #define SE_SELF_RELATIVE 0x8000
128 /* This was moved to windows.h
129 typedef struct {
130 BYTE Revision;
131 BYTE Sbz1;
132 SECURITY_DESCRIPTOR_CONTROL Control;
133 PSID Owner;
134 PSID Group;
135 LPACL Sacl;
136 LPACL Dacl;
137 } SECURITY_DESCRIPTOR,*PSECURITY_DESCRIPTOR,*LPSECURITY_DESCRIPTOR;
140 typedef enum tagSID_NAME_USE {
141 SidTypeUser = 1,
142 SidTypeGroup,
143 SidTypeDomain,
144 SidTypeAlias,
145 SidTypeWellKnownGroup,
146 SidTypeDeletedAccount,
147 SidTypeInvalid,
148 SidTypeUnknown
149 } SID_NAME_USE,*PSID_NAME_USE;
151 typedef struct _RTL_RWLOCK {
152 CRITICAL_SECTION rtlCS;
153 HANDLE32 hSharedReleaseSemaphore;
154 UINT32 uSharedWaiters;
155 HANDLE32 hExclusiveReleaseSemaphore;
156 UINT32 uExclusiveWaiters;
157 INT32 iNumberActive;
158 HANDLE32 hOwningThreadId;
159 DWORD dwTimeoutBoost;
160 PVOID pDebugInfo;
161 } RTL_RWLOCK, *LPRTL_RWLOCK;
163 VOID WINAPI RtlInitializeResource(LPRTL_RWLOCK);
164 VOID WINAPI RtlDeleteResource(LPRTL_RWLOCK);
165 BYTE WINAPI RtlAcquireResourceExclusive(LPRTL_RWLOCK, BYTE fWait);
166 BYTE WINAPI RtlAcquireResourceShared(LPRTL_RWLOCK, BYTE fWait);
167 VOID WINAPI RtlReleaseResource(LPRTL_RWLOCK);
168 VOID WINAPI RtlDumpResource(LPRTL_RWLOCK);
170 BOOL32 WINAPI IsValidSid(PSID);
171 BOOL32 WINAPI EqualSid(PSID,PSID);
172 BOOL32 WINAPI EqualPrefixSid(PSID,PSID);
173 DWORD WINAPI GetSidLengthRequired(BYTE);
174 BOOL32 WINAPI AllocateAndInitializeSid(PSID_IDENTIFIER_AUTHORITY,BYTE,DWORD,
175 DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,
176 DWORD,PSID*);
177 VOID* WINAPI FreeSid(PSID);
178 BOOL32 WINAPI InitializeSecurityDescriptor(SECURITY_DESCRIPTOR*,DWORD);
179 BOOL32 WINAPI InitializeSid(PSID,PSID_IDENTIFIER_AUTHORITY,BYTE);
180 DWORD* WINAPI GetSidSubAuthority(PSID,DWORD);
181 BYTE * WINAPI GetSidSubAuthorityCount(PSID);
182 DWORD WINAPI GetLengthSid(PSID);
183 BOOL32 WINAPI CopySid(DWORD,PSID,PSID);
184 BOOL32 WINAPI LookupAccountSid32A(LPCSTR,PSID,LPCSTR,LPDWORD,LPCSTR,LPDWORD,
185 PSID_NAME_USE);
186 BOOL32 WINAPI LookupAccountSid32W(LPCWSTR,PSID,LPCWSTR,LPDWORD,LPCWSTR,LPDWORD,
187 PSID_NAME_USE);
188 PSID_IDENTIFIER_AUTHORITY WINAPI GetSidIdentifierAuthority(PSID);
189 INT32 WINAPI AccessResource32(HMODULE32,HRSRC32);
190 #define AccessResource WINELIB_NAME(AccessResource)
192 #ifdef __cplusplus
194 #endif
196 #endif /* __WINE_NTDLL_H */