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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20 * PROJECT: ReactOS Authorization Framework
21 * FILE: lib/authz/authz.c
22 * PURPOSE: Authorization Framework
23 * PROGRAMMER: Thomas Weidenmueller <w3seek@reactos.com>
34 HINSTANCE hDllInstance
;
42 AuthzAccessCheck(IN DWORD flags
,
43 IN AUTHZ_CLIENT_CONTEXT_HANDLE AuthzClientContext
,
44 IN PAUTHZ_ACCESS_REQUEST pRequest
,
45 IN AUTHZ_AUDIT_INFO_HANDLE AuditInfo
,
46 IN PSECURITY_DESCRIPTOR pSecurityDescriptor
,
47 IN PSECURITY_DESCRIPTOR
* OptionalSecurityDescriptorArray
,
48 IN DWORD OptionalSecurityDescriptorCount OPTIONAL
,
49 IN OUT PAUTHZ_ACCESS_REPLY pReply
,
50 OUT PAUTHZ_ACCESS_CHECK_RESULTS_HANDLE pAuthzHandle
)
63 AuthzAddSidsToContext(IN AUTHZ_CLIENT_CONTEXT_HANDLE OrigClientContext
,
64 IN PSID_AND_ATTRIBUTES Sids
,
66 IN PSID_AND_ATTRIBUTES RestrictedSids
,
67 IN DWORD RestrictedSidCount
,
68 OUT PAUTHZ_CLIENT_CONTEXT_HANDLE pNewClientContext
)
81 AuthzCachedAccessCheck(IN DWORD Flags
,
82 IN AUTHZ_ACCESS_CHECK_RESULTS_HANDLE AuthzHandle
,
83 IN PAUTHZ_ACCESS_REQUEST pRequest
,
84 IN AUTHZ_AUDIT_EVENT_HANDLE AuditInfo
,
85 OUT PAUTHZ_ACCESS_REPLY pReply
)
98 AuthzEnumerateSecurityEventSources(IN DWORD dwFlags
,
99 OUT PAUTHZ_SOURCE_SCHEMA_REGISTRATION Buffer
,
101 IN OUT PDWORD pdwLength
)
114 AuthzFreeAuditEvent(IN AUTHZ_AUDIT_EVENT_HANDLE pAuditEventInfo
)
127 AuthzFreeHandle(IN AUTHZ_ACCESS_CHECK_RESULTS_HANDLE AuthzHandle
)
140 AuthzInitializeContextFromAuthzContext(IN DWORD flags
,
141 IN AUTHZ_CLIENT_CONTEXT_HANDLE AuthzHandle
,
142 IN PLARGE_INTEGER ExpirationTime
,
144 IN PVOID DynamicGroupArgs
,
145 OUT PAUTHZ_CLIENT_CONTEXT_HANDLE phNewAuthzHandle
)
158 AuthzInitializeContextFromToken(IN DWORD Flags
,
159 IN HANDLE TokenHandle
,
160 IN AUTHZ_RESOURCE_MANAGER_HANDLE AuthzResourceManager
,
161 IN PLARGE_INTEGER pExpirationTime
,
163 IN PVOID DynamicGroupArgs
,
164 OUT PAUTHZ_CLIENT_CONTEXT_HANDLE pAuthzClientContext
)
177 AuthzInitializeObjectAccessAuditEvent(IN DWORD Flags
,
178 IN AUTHZ_AUDIT_EVENT_TYPE_HANDLE hAuditEventType
,
179 IN PWSTR szOperationType
,
180 IN PWSTR szObjectType
,
181 IN PWSTR szObjectName
,
182 IN PWSTR szAdditionalInfo
,
183 OUT PAUTHZ_AUDIT_EVENT_HANDLE phAuditEvent
,
184 IN DWORD dwAdditionalParamCount
,
198 AuthzInitializeObjectAccessAuditEvent2(IN DWORD Flags
,
199 IN AUTHZ_AUDIT_EVENT_TYPE_HANDLE hAuditEventType
,
200 IN PWSTR szOperationType
,
201 IN PWSTR szObjectType
,
202 IN PWSTR szObjectName
,
203 IN PWSTR szAdditionalInfo
,
204 IN PWSTR szAdditionalInfo2
,
205 OUT PAUTHZ_AUDIT_EVENT_HANDLE phAuditEvent
,
206 IN DWORD dwAdditionalParameterCount
,
220 AuthzInstallSecurityEventSource(IN DWORD dwFlags
,
221 IN PAUTHZ_SOURCE_SCHEMA_REGISTRATION pRegistration
)
234 AuthzOpenObjectAudit(IN DWORD Flags
,
235 IN AUTHZ_CLIENT_CONTEXT_HANDLE hAuthzClientContext
,
236 IN PAUTHZ_ACCESS_REQUEST pRequest
,
237 IN AUTHZ_AUDIT_EVENT_HANDLE hAuditEvent
,
238 IN PSECURITY_DESCRIPTOR pSecurityDescriptor
,
239 IN PSECURITY_DESCRIPTOR
* SecurityDescriptorArray
,
240 IN DWORD SecurityDescriptorCount
,
241 OUT PAUTHZ_ACCESS_REPLY pReply
)
254 AuthzRegisterSecurityEventSource(IN DWORD dwFlags
,
255 IN PCWSTR szEventSourceName
,
256 IN PAUTHZ_SECURITY_EVENT_PROVIDER_HANDLE phEventProvider
)
269 AuthzReportSecurityEvent(IN DWORD dwFlags
,
270 IN AUTHZ_SECURITY_EVENT_PROVIDER_HANDLE hEventProvider
,
272 IN PSID pUserSid OPTIONAL
,
287 AuthzReportSecurityEventFromParams(IN DWORD dwFlags
,
288 IN AUTHZ_SECURITY_EVENT_PROVIDER_HANDLE hEventProvider
,
290 IN PSID pUserSid OPTIONAL
,
291 IN PAUDIT_PARAMS pParams
)
304 AuthzUninstallSecurityEventSource(IN DWORD dwFlags
,
305 IN PWSTR szEventSourceName
)
318 AuthzUnregisterSecurityEventSource(IN DWORD dwFlags
,
319 IN OUT PAUTHZ_SECURITY_EVENT_PROVIDER_HANDLE phEventProvider
)
327 DllMain(IN HINSTANCE hinstDLL
,
329 IN LPVOID lpvReserved
)
333 case DLL_PROCESS_ATTACH
:
334 hDllInstance
= hinstDLL
;
337 case DLL_THREAD_ATTACH
:
338 case DLL_THREAD_DETACH
:
339 case DLL_PROCESS_DETACH
: