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

Last change on this file since 10367 was 4, checked in by ktk, 26 years ago

Import

File size: 3.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
116BOOL WINAPI IsValidSid(PSID);
117BOOL WINAPI EqualSid(PSID,PSID);
118BOOL WINAPI EqualPrefixSid(PSID,PSID);
119DWORD WINAPI GetSidLengthRequired(BYTE);
120BOOL WINAPI AllocateAndInitializeSid(PSID_IDENTIFIER_AUTHORITY,BYTE,DWORD,
121 DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,
122 DWORD,PSID*);
123VOID* WINAPI FreeSid(PSID);
124BOOL WINAPI InitializeSecurityDescriptor(SECURITY_DESCRIPTOR*,DWORD);
125BOOL WINAPI InitializeSid(PSID,PSID_IDENTIFIER_AUTHORITY,BYTE);
126DWORD* WINAPI GetSidSubAuthority(PSID,DWORD);
127BYTE * WINAPI GetSidSubAuthorityCount(PSID);
128DWORD WINAPI GetLengthSid(PSID);
129BOOL WINAPI CopySid(DWORD,PSID,PSID);
130BOOL WINAPI LookupAccountSidA(LPCSTR,PSID,LPCSTR,LPDWORD,LPCSTR,LPDWORD,
131 PSID_NAME_USE);
132BOOL WINAPI LookupAccountSidW(LPCWSTR,PSID,LPCWSTR,LPDWORD,LPCWSTR,LPDWORD,
133 PSID_NAME_USE);
134PSID_IDENTIFIER_AUTHORITY WINAPI GetSidIdentifierAuthority(PSID);
135INT WINAPI AccessResource(HMODULE,HRSRC);
136
137#ifdef __cplusplus
138}
139#endif
140
141#endif /* __WINE_NTDLL_H */
Note: See TracBrowser for help on using the repository browser.