2 * ReactOS Authorization Framework
3 * Copyright (C) 2005 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
19 /* $Id: aclui.c 18173 2005-09-30 18:54:48Z weiden $
21 * PROJECT: ReactOS Authorization Framework
22 * FILE: lib/authz/authz.c
23 * PURPOSE: Authorization Framework
24 * PROGRAMMER: Thomas Weidenmueller <w3seek@reactos.com>
31 HINSTANCE hDllInstance
;
40 AuthzAccessCheck(IN DWORD flags
,
41 IN AUTHZ_CLIENT_CONTEXT_HANDLE AuthzClientContext
,
42 IN PAUTHZ_ACCESS_REQUEST pRequest
,
43 IN AUTHZ_AUDIT_INFO_HANDLE AuditInfo
,
44 IN PSECURITY_DESCRIPTOR pSecurityDescriptor
,
45 IN PSECURITY_DESCRIPTOR
* OptionalSecurityDescriptorArray
,
46 IN DWORD OptionalSecurityDescriptorCount OPTIONAL
,
47 IN OUT PAUTHZ_ACCESS_REPLY pReply
,
48 OUT PAUTHZ_ACCESS_CHECK_RESULTS_HANDLE pAuthzHandle
)
61 AuthzAddSidsToContext(IN AUTHZ_CLIENT_CONTEXT_HANDLE OrigClientContext
,
62 IN PSID_AND_ATTRIBUTES Sids
,
64 IN PSID_AND_ATTRIBUTES RestrictedSids
,
65 IN DWORD RestrictedSidCount
,
66 OUT PAUTHZ_CLIENT_CONTEXT_HANDLE pNewClientContext
)
79 AuthzCachedAccessCheck(IN DWORD Flags
,
80 IN AUTHZ_ACCESS_CHECK_RESULTS_HANDLE AuthzHandle
,
81 IN PAUTHZ_ACCESS_REQUEST pRequest
,
82 IN AUTHZ_AUDIT_EVENT_HANDLE AuditInfo
,
83 OUT PAUTHZ_ACCESS_REPLY pReply
)
96 AuthzEnumerateSecurityEventSources(IN DWORD dwFlags
,
97 OUT PAUTHZ_SOURCE_SCHEMA_REGISTRATION Buffer
,
99 IN OUT PDWORD pdwLength
)
112 AuthzFreeAuditEvent(IN AUTHZ_AUDIT_EVENT_HANDLE pAuditEventInfo
)
125 AuthzFreeHandle(IN AUTHZ_ACCESS_CHECK_RESULTS_HANDLE AuthzHandle
)
138 AuthzInitializeContextFromAuthzContext(IN DWORD flags
,
139 IN AUTHZ_CLIENT_CONTEXT_HANDLE AuthzHandle
,
140 IN PLARGE_INTEGER ExpirationTime
,
142 IN PVOID DynamicGroupArgs
,
143 OUT PAUTHZ_CLIENT_CONTEXT_HANDLE phNewAuthzHandle
)
156 AuthzInitializeContextFromToken(IN DWORD Flags
,
157 IN HANDLE TokenHandle
,
158 IN AUTHZ_RESOURCE_MANAGER_HANDLE AuthzResourceManager
,
159 IN PLARGE_INTEGER pExpirationTime
,
161 IN PVOID DynamicGroupArgs
,
162 OUT PAUTHZ_CLIENT_CONTEXT_HANDLE pAuthzClientContext
)
175 AuthzInitializeObjectAccessAuditEvent(IN DWORD Flags
,
176 IN AUTHZ_AUDIT_EVENT_TYPE_HANDLE hAuditEventType
,
177 IN PWSTR szOperationType
,
178 IN PWSTR szObjectType
,
179 IN PWSTR szObjectName
,
180 IN PWSTR szAdditionalInfo
,
181 OUT PAUTHZ_AUDIT_EVENT_HANDLE phAuditEvent
,
182 IN DWORD dwAdditionalParamCount
)
195 AuthzInitializeObjectAccessAuditEvent2(IN DWORD Flags
,
196 IN AUTHZ_AUDIT_EVENT_TYPE_HANDLE hAuditEventType
,
197 IN PWSTR szOperationType
,
198 IN PWSTR szObjectType
,
199 IN PWSTR szObjectName
,
200 IN PWSTR szAdditionalInfo
,
201 IN PWSTR szAdditionalInfo2
,
202 OUT PAUTHZ_AUDIT_EVENT_HANDLE phAuditEvent
,
203 IN DWORD dwAdditionalParameterCount
)
216 AuthzInstallSecurityEventSource(IN DWORD dwFlags
,
217 IN PAUTHZ_SOURCE_SCHEMA_REGISTRATION pRegistration
)
230 AuthzOpenObjectAudit(IN DWORD Flags
,
231 IN AUTHZ_CLIENT_CONTEXT_HANDLE hAuthzClientContext
,
232 IN PAUTHZ_ACCESS_REQUEST pRequest
,
233 IN AUTHZ_AUDIT_EVENT_HANDLE hAuditEvent
,
234 IN PSECURITY_DESCRIPTOR pSecurityDescriptor
,
235 IN PSECURITY_DESCRIPTOR
* SecurityDescriptorArray
,
236 IN DWORD SecurityDescriptorCount
,
237 OUT PAUTHZ_ACCESS_REPLY pReply
)
250 AuthzRegisterSecurityEventSource(IN DWORD dwFlags
,
251 IN PCWSTR szEventSourceName
,
252 IN PAUTHZ_SECURITY_EVENT_PROVIDER_HANDLE phEventProvider
)
265 AuthzReportSecurityEvent(IN DWORD dwFlags
,
266 IN AUTHZ_SECURITY_EVENT_PROVIDER_HANDLE hEventProvider
,
268 IN PSID pUserSid OPTIONAL
,
283 AuthzReportSecurityEventFromParams(IN DWORD dwFlags
,
284 IN AUTHZ_SECURITY_EVENT_PROVIDER_HANDLE hEventProvider
,
286 IN PSID pUserSid OPTIONAL
,
287 IN PAUDIT_PARAMS pParams
)
300 AuthzUninstallSecurityEventSource(IN DWORD dwFlags
,
301 IN PWSTR szEventSourceName
)
314 AuthzUnregisterSecurityEventSource(IN DWORD dwFlags
,
315 IN OUT PAUTHZ_SECURITY_EVENT_PROVIDER_HANDLE phEventProvider
)
323 DllMain(IN HINSTANCE hinstDLL
,
325 IN LPVOID lpvReserved
)
329 case DLL_PROCESS_ATTACH
:
330 hDllInstance
= hinstDLL
;
333 case DLL_THREAD_ATTACH
:
334 case DLL_THREAD_DETACH
:
335 case DLL_PROCESS_DETACH
: