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