2 * ReactOS Authorization Framework
3 * Copyright (C) 2005 - 2006 ReactOS Team
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 * PROJECT: ReactOS Authorization Framework
21 * FILE: lib/authz/authz.c
22 * PURPOSE: Authorization Framework
23 * PROGRAMMER: Thomas Weidenmueller <w3seek@reactos.com>
30 HINSTANCE hDllInstance
;
39 AuthzAccessCheck(IN DWORD flags
,
40 IN AUTHZ_CLIENT_CONTEXT_HANDLE AuthzClientContext
,
41 IN PAUTHZ_ACCESS_REQUEST pRequest
,
42 IN AUTHZ_AUDIT_INFO_HANDLE AuditInfo
,
43 IN PSECURITY_DESCRIPTOR pSecurityDescriptor
,
44 IN PSECURITY_DESCRIPTOR
* OptionalSecurityDescriptorArray
,
45 IN DWORD OptionalSecurityDescriptorCount OPTIONAL
,
46 IN OUT PAUTHZ_ACCESS_REPLY pReply
,
47 OUT PAUTHZ_ACCESS_CHECK_RESULTS_HANDLE pAuthzHandle
)
60 AuthzAddSidsToContext(IN AUTHZ_CLIENT_CONTEXT_HANDLE OrigClientContext
,
61 IN PSID_AND_ATTRIBUTES Sids
,
63 IN PSID_AND_ATTRIBUTES RestrictedSids
,
64 IN DWORD RestrictedSidCount
,
65 OUT PAUTHZ_CLIENT_CONTEXT_HANDLE pNewClientContext
)
78 AuthzCachedAccessCheck(IN DWORD Flags
,
79 IN AUTHZ_ACCESS_CHECK_RESULTS_HANDLE AuthzHandle
,
80 IN PAUTHZ_ACCESS_REQUEST pRequest
,
81 IN AUTHZ_AUDIT_EVENT_HANDLE AuditInfo
,
82 OUT PAUTHZ_ACCESS_REPLY pReply
)
95 AuthzEnumerateSecurityEventSources(IN DWORD dwFlags
,
96 OUT PAUTHZ_SOURCE_SCHEMA_REGISTRATION Buffer
,
98 IN OUT PDWORD pdwLength
)
111 AuthzFreeAuditEvent(IN AUTHZ_AUDIT_EVENT_HANDLE pAuditEventInfo
)
124 AuthzFreeHandle(IN AUTHZ_ACCESS_CHECK_RESULTS_HANDLE AuthzHandle
)
137 AuthzInitializeContextFromAuthzContext(IN DWORD flags
,
138 IN AUTHZ_CLIENT_CONTEXT_HANDLE AuthzHandle
,
139 IN PLARGE_INTEGER ExpirationTime
,
141 IN PVOID DynamicGroupArgs
,
142 OUT PAUTHZ_CLIENT_CONTEXT_HANDLE phNewAuthzHandle
)
155 AuthzInitializeContextFromToken(IN DWORD Flags
,
156 IN HANDLE TokenHandle
,
157 IN AUTHZ_RESOURCE_MANAGER_HANDLE AuthzResourceManager
,
158 IN PLARGE_INTEGER pExpirationTime
,
160 IN PVOID DynamicGroupArgs
,
161 OUT PAUTHZ_CLIENT_CONTEXT_HANDLE pAuthzClientContext
)
174 AuthzInitializeObjectAccessAuditEvent(IN DWORD Flags
,
175 IN AUTHZ_AUDIT_EVENT_TYPE_HANDLE hAuditEventType
,
176 IN PWSTR szOperationType
,
177 IN PWSTR szObjectType
,
178 IN PWSTR szObjectName
,
179 IN PWSTR szAdditionalInfo
,
180 OUT PAUTHZ_AUDIT_EVENT_HANDLE phAuditEvent
,
181 IN DWORD dwAdditionalParamCount
)
194 AuthzInitializeObjectAccessAuditEvent2(IN DWORD Flags
,
195 IN AUTHZ_AUDIT_EVENT_TYPE_HANDLE hAuditEventType
,
196 IN PWSTR szOperationType
,
197 IN PWSTR szObjectType
,
198 IN PWSTR szObjectName
,
199 IN PWSTR szAdditionalInfo
,
200 IN PWSTR szAdditionalInfo2
,
201 OUT PAUTHZ_AUDIT_EVENT_HANDLE phAuditEvent
,
202 IN DWORD dwAdditionalParameterCount
)
215 AuthzInstallSecurityEventSource(IN DWORD dwFlags
,
216 IN PAUTHZ_SOURCE_SCHEMA_REGISTRATION pRegistration
)
229 AuthzOpenObjectAudit(IN DWORD Flags
,
230 IN AUTHZ_CLIENT_CONTEXT_HANDLE hAuthzClientContext
,
231 IN PAUTHZ_ACCESS_REQUEST pRequest
,
232 IN AUTHZ_AUDIT_EVENT_HANDLE hAuditEvent
,
233 IN PSECURITY_DESCRIPTOR pSecurityDescriptor
,
234 IN PSECURITY_DESCRIPTOR
* SecurityDescriptorArray
,
235 IN DWORD SecurityDescriptorCount
,
236 OUT PAUTHZ_ACCESS_REPLY pReply
)
249 AuthzRegisterSecurityEventSource(IN DWORD dwFlags
,
250 IN PCWSTR szEventSourceName
,
251 IN PAUTHZ_SECURITY_EVENT_PROVIDER_HANDLE phEventProvider
)
264 AuthzReportSecurityEvent(IN DWORD dwFlags
,
265 IN AUTHZ_SECURITY_EVENT_PROVIDER_HANDLE hEventProvider
,
267 IN PSID pUserSid OPTIONAL
,
282 AuthzReportSecurityEventFromParams(IN DWORD dwFlags
,
283 IN AUTHZ_SECURITY_EVENT_PROVIDER_HANDLE hEventProvider
,
285 IN PSID pUserSid OPTIONAL
,
286 IN PAUDIT_PARAMS pParams
)
299 AuthzUninstallSecurityEventSource(IN DWORD dwFlags
,
300 IN PWSTR szEventSourceName
)
313 AuthzUnregisterSecurityEventSource(IN DWORD dwFlags
,
314 IN OUT PAUTHZ_SECURITY_EVENT_PROVIDER_HANDLE phEventProvider
)
322 DllMain(IN HINSTANCE hinstDLL
,
324 IN LPVOID lpvReserved
)
328 case DLL_PROCESS_ATTACH
:
329 hDllInstance
= hinstDLL
;
332 case DLL_THREAD_ATTACH
:
333 case DLL_THREAD_DETACH
:
334 case DLL_PROCESS_DETACH
: