source: trunk/include/win/ntdll.h@ 21504

Last change on this file since 21504 was 21453, checked in by dmik, 15 years ago

Moved Sid APIs from ntdll.h to winbase.h (for compatibility with modern SDKs) and added non-AW macros for a bunch of related AW functions.

File size: 2.8 KB
Line 
1/* $Id: ntdll.h,v 1.1 1999-05-24 20:19:15 ktk Exp $ */
2
3#ifndef __WINE_NTDLL_H
4#define __WINE_NTDLL_H
5/* ntdll.h
6 *
7 * contains NT internal defines that don't show on the Win32 API level
8 *
9 * Copyright 1997 Marcus Meissner
10 */
11
12#include "winbase.h"
13
14#ifdef __cplusplus
15extern "C" {
16#endif
17
18typedef DWORD NTSTATUS;
19
20#define SID_REVISION (1) /* Current revision */
21#define SID_MAX_SUB_AUTHORITIES (15) /* current max subauths */
22#define SID_RECOMMENDED_SUB_AUTHORITIES (1) /* recommended subauths */
23
24/* ACLs of NT */
25
26#define ACL_REVISION 2
27
28#define ACL_REVISION1 1
29#define ACL_REVISION2 2
30
31/* ACEs, directly starting after an ACL */
32typedef struct _ACE_HEADER {
33 BYTE AceType;
34 BYTE AceFlags;
35 WORD AceSize;
36} ACE_HEADER,*LPACE_HEADER;
37
38/* AceType */
39#define ACCESS_ALLOWED_ACE_TYPE 0
40#define ACCESS_DENIED_ACE_TYPE 1
41#define SYSTEM_AUDIT_ACE_TYPE 2
42#define SYSTEM_ALARM_ACE_TYPE 3
43
44/* inherit AceFlags */
45#define OBJECT_INHERIT_ACE 0x01
46#define CONTAINER_INHERIT_ACE 0x02
47#define NO_PROPAGATE_INHERIT_ACE 0x04
48#define INHERIT_ONLY_ACE 0x08
49#define VALID_INHERIT_FLAGS 0x0F
50
51/* AceFlags mask for what events we (should) audit */
52#define SUCCESSFUL_ACCESS_ACE_FLAG 0x40
53#define FAILED_ACCESS_ACE_FLAG 0x80
54
55/* different ACEs depending on AceType
56 * SidStart marks the begin of a SID
57 * so the thing finally looks like this:
58 * 0: ACE_HEADER
59 * 4: ACCESS_MASK
60 * 8... : SID
61 */
62typedef struct _ACCESS_ALLOWED_ACE {
63 ACE_HEADER Header;
64 DWORD Mask;
65 DWORD SidStart;
66} ACCESS_ALLOWED_ACE,*LPACCESS_ALLOWED_ACE;
67
68typedef struct _ACCESS_DENIED_ACE {
69 ACE_HEADER Header;
70 DWORD Mask;
71 DWORD SidStart;
72} ACCESS_DENIED_ACE,*LPACCESS_DENIED_ACE;
73
74typedef struct _SYSTEM_AUDIT_ACE {
75 ACE_HEADER Header;
76 DWORD Mask;
77 DWORD SidStart;
78} SYSTEM_AUDIT_ACE,*LPSYSTEM_AUDIT_ACE;
79
80typedef struct _SYSTEM_ALARM_ACE {
81 ACE_HEADER Header;
82 DWORD Mask;
83 DWORD SidStart;
84} SYSTEM_ALARM_ACE,*LPSYSTEM_ALARM_ACE;
85
86typedef enum tagSID_NAME_USE {
87 SidTypeUser = 1,
88 SidTypeGroup,
89 SidTypeDomain,
90 SidTypeAlias,
91 SidTypeWellKnownGroup,
92 SidTypeDeletedAccount,
93 SidTypeInvalid,
94 SidTypeUnknown
95} SID_NAME_USE,*PSID_NAME_USE;
96
97typedef struct _RTL_RWLOCK {
98 CRITICAL_SECTION rtlCS;
99 HANDLE hSharedReleaseSemaphore;
100 UINT uSharedWaiters;
101 HANDLE hExclusiveReleaseSemaphore;
102 UINT uExclusiveWaiters;
103 INT iNumberActive;
104 HANDLE hOwningThreadId;
105 DWORD dwTimeoutBoost;
106 PVOID pDebugInfo;
107} RTL_RWLOCK, *LPRTL_RWLOCK;
108
109VOID WINAPI RtlInitializeResource(LPRTL_RWLOCK);
110VOID WINAPI RtlDeleteResource(LPRTL_RWLOCK);
111BYTE WINAPI RtlAcquireResourceExclusive(LPRTL_RWLOCK, BYTE fWait);
112BYTE WINAPI RtlAcquireResourceShared(LPRTL_RWLOCK, BYTE fWait);
113VOID WINAPI RtlReleaseResource(LPRTL_RWLOCK);
114VOID WINAPI RtlDumpResource(LPRTL_RWLOCK);
115
116INT WINAPI AccessResource(HMODULE,HRSRC);
117
118#ifdef __cplusplus
119}
120#endif
121
122#endif /* __WINE_NTDLL_H */
Note: See TracBrowser for help on using the repository browser.