branch update for HEAD-2003050101
[reactos.git] / include / ddk / sefuncs.h
1 #ifndef _INCLUDE_DDK_SEFUNCS_H
2 #define _INCLUDE_DDK_SEFUNCS_H
3 /* $Id$ */
4
5 #ifdef __NTOSKRNL__
6 extern PACL EXPORTED SePublicDefaultDacl;
7 extern PACL EXPORTED SeSystemDefaultDacl;
8 #else
9 extern PACL IMPORTED SePublicDefaultDacl;
10 extern PACL IMPORTED SeSystemDefaultDacl;
11 #endif
12
13 BOOLEAN STDCALL
14 SeAccessCheck(IN PSECURITY_DESCRIPTOR SecurityDescriptor,
15               IN PSECURITY_SUBJECT_CONTEXT SubjectSecurityContext,
16               IN BOOLEAN SubjectContextLocked,
17               IN ACCESS_MASK DesiredAccess,
18               IN ACCESS_MASK PreviouslyGrantedAccess,
19               OUT PPRIVILEGE_SET* Privileges OPTIONAL,
20               IN PGENERIC_MAPPING GenericMapping,
21               IN KPROCESSOR_MODE AccessMode,
22               OUT PACCESS_MODE GrantedAccess,
23               OUT PNTSTATUS AccessStatus);
24
25 NTSTATUS STDCALL
26 SeAppendPrivileges(IN PACCESS_STATE AccessState,
27                    IN PPRIVILEGE_SET Privileges);
28
29 NTSTATUS STDCALL
30 SeAssignSecurity(IN PSECURITY_DESCRIPTOR ParentDescriptor OPTIONAL,
31                  IN PSECURITY_DESCRIPTOR ExplicitDescriptor,
32                  OUT PSECURITY_DESCRIPTOR* NewDescriptor,
33                  IN BOOLEAN IsDirectoryObject,
34                  IN PSECURITY_SUBJECT_CONTEXT SubjectContext,
35                  IN PGENERIC_MAPPING GenericMapping,
36                  IN POOL_TYPE PoolType);
37
38 BOOLEAN STDCALL
39 SeAuditingFileEvents(IN BOOLEAN AccessGranted,
40                      IN PSECURITY_DESCRIPTOR SecurityDescriptor);
41
42 BOOLEAN STDCALL
43 SeAuditingFileOrGlobalEvents(IN BOOLEAN AccessGranted,
44                              IN PSECURITY_DESCRIPTOR SecurityDescriptor,
45                              IN PSECURITY_SUBJECT_CONTEXT SubjectContext);
46
47 VOID STDCALL
48 SeCaptureSubjectContext(OUT PSECURITY_SUBJECT_CONTEXT SubjectContext);
49
50 NTSTATUS STDCALL
51 SeCreateAccessState(OUT PACCESS_STATE AccessState,
52                     IN PVOID AuxData,
53                     IN ACCESS_MASK AccessMask,
54                     IN PGENERIC_MAPPING Mapping);
55
56 NTSTATUS STDCALL
57 SeCreateClientSecurity(IN struct _ETHREAD *Thread,
58                        IN PSECURITY_QUALITY_OF_SERVICE Qos,
59                        IN BOOLEAN RemoteClient,
60                        OUT PSECURITY_CLIENT_CONTEXT ClientContext);
61
62 NTSTATUS STDCALL
63 SeDeassignSecurity(IN OUT PSECURITY_DESCRIPTOR* SecurityDescriptor);
64
65 VOID STDCALL
66 SeDeleteAccessState(IN PACCESS_STATE AccessState);
67
68 VOID STDCALL
69 SeDeleteObjectAuditAlarm(IN PVOID Object,
70                          IN HANDLE Handle);
71
72 VOID STDCALL
73 SeFreePrivileges(IN PPRIVILEGE_SET Privileges);
74
75 VOID STDCALL
76 SeImpersonateClient(IN PSECURITY_CLIENT_CONTEXT ClientContext,
77                     IN struct _ETHREAD *ServerThread OPTIONAL);
78
79 VOID STDCALL
80 SeLockSubjectContext(IN PSECURITY_SUBJECT_CONTEXT SubjectContext);
81
82 NTSTATUS STDCALL
83 SeMarkLogonSessionForTerminationNotification(IN PLUID LogonId);
84
85 VOID STDCALL
86 SeOpenObjectAuditAlarm(IN PUNICODE_STRING ObjectTypeName,
87                        IN PVOID Object OPTIONAL,
88                        IN PUNICODE_STRING AbsoluteObjectName OPTIONAL,
89                        IN PSECURITY_DESCRIPTOR SecurityDescriptor,
90                        IN PACCESS_STATE AccessState,
91                        IN BOOLEAN ObjectCreated,
92                        IN BOOLEAN AccessGranted,
93                        IN KPROCESSOR_MODE AccessMode,
94                        OUT PBOOLEAN GenerateOnClose);
95
96 VOID STDCALL
97 SeOpenObjectForDeleteAuditAlarm(IN PUNICODE_STRING ObjectTypeName,
98                                 IN PVOID Object OPTIONAL,
99                                 IN PUNICODE_STRING AbsoluteObjectName OPTIONAL,
100                                 IN PSECURITY_DESCRIPTOR SecurityDescriptor,
101                                 IN PACCESS_STATE AccessState,
102                                 IN BOOLEAN ObjectCreated,
103                                 IN BOOLEAN AccessGranted,
104                                 IN KPROCESSOR_MODE AccessMode,
105                                 OUT PBOOLEAN GenerateOnClose);
106
107 BOOLEAN STDCALL
108 SePrivilegeCheck(IN OUT PPRIVILEGE_SET RequiredPrivileges,
109                  IN PSECURITY_SUBJECT_CONTEXT SubjectContext,
110                  IN KPROCESSOR_MODE AccessMode);
111
112 NTSTATUS STDCALL
113 SeQueryAuthenticationIdToken(IN PACCESS_TOKEN Token,
114                              OUT PLUID LogonId);
115
116 NTSTATUS STDCALL
117 SeQuerySecurityDescriptorInfo(IN PSECURITY_INFORMATION SecurityInformation,
118                               OUT PSECURITY_DESCRIPTOR SecurityDescriptor,
119                               IN OUT PULONG Length,
120                               IN PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor);
121
122 NTSTATUS STDCALL
123 SeRegisterLogonSessionTerminatedRoutine(IN PSE_LOGON_SESSION_TERMINATED_ROUTINE CallbackRoutine);
124
125 VOID STDCALL
126 SeReleaseSubjectContext(IN PSECURITY_SUBJECT_CONTEXT SubjectContext);
127
128 VOID STDCALL
129 SeSetAccessStateGenericMapping(IN PACCESS_STATE AccessState,
130                                IN PGENERIC_MAPPING GenericMapping);
131
132 NTSTATUS STDCALL
133 SeSetSecurityDescriptorInfo(IN PVOID Object OPTIONAL,
134                             IN PSECURITY_INFORMATION SecurityInformation,
135                             IN PSECURITY_DESCRIPTOR SecurityDescriptor,
136                             IN OUT PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor,
137                             IN POOL_TYPE PoolType,
138                             IN PGENERIC_MAPPING GenericMapping);
139
140 BOOLEAN STDCALL
141 SeSinglePrivilegeCheck(IN LUID PrivilegeValue,
142                        IN KPROCESSOR_MODE PreviousMode);
143
144 SECURITY_IMPERSONATION_LEVEL STDCALL
145 SeTokenImpersonationLevel(IN PACCESS_TOKEN Token);
146
147 TOKEN_TYPE STDCALL
148 SeTokenType(IN PACCESS_TOKEN Token);
149
150 VOID STDCALL
151 SeUnlockSubjectContext(IN PSECURITY_SUBJECT_CONTEXT SubjectContext);
152
153 NTSTATUS STDCALL
154 SeUnregisterLogonSessionTerminatedRoutine(IN PSE_LOGON_SESSION_TERMINATED_ROUTINE CallbackRoutine);
155
156 BOOLEAN STDCALL
157 SeValidSecurityDescriptor(IN ULONG Length,
158                           IN PSECURITY_DESCRIPTOR SecurityDescriptor);
159
160 #endif /* ndef _INCLUDE_DDK_SEFUNCS_H */