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 AuthzFreeContext(IN AUTHZ_CLIENT_CONTEXT_HANDLE AuthzClientContext
)
138 AuthzFreeHandle(IN AUTHZ_ACCESS_CHECK_RESULTS_HANDLE AuthzHandle
)
151 AuthzGetInformationFromContext(IN AUTHZ_CLIENT_CONTEXT_HANDLE hAuthzClientContext
,
152 IN AUTHZ_CONTEXT_INFORMATION_CLASS InfoClass
,
154 OUT PDWORD pSizeRequired
,
168 AuthzInitializeContextFromAuthzContext(IN DWORD flags
,
169 IN AUTHZ_CLIENT_CONTEXT_HANDLE AuthzHandle
,
170 IN PLARGE_INTEGER ExpirationTime
,
172 IN PVOID DynamicGroupArgs
,
173 OUT PAUTHZ_CLIENT_CONTEXT_HANDLE phNewAuthzHandle
)
186 AuthzInitializeContextFromSid(IN DWORD Flags
,
188 IN AUTHZ_RESOURCE_MANAGER_HANDLE AuthzResourceManager
,
189 IN PLARGE_INTEGER pExpirationTime
,
191 IN PVOID DynamicGroupArgs
,
192 OUT PAUTHZ_CLIENT_CONTEXT_HANDLE pAuthzClientContext
)
205 AuthzInitializeContextFromToken(IN DWORD Flags
,
206 IN HANDLE TokenHandle
,
207 IN AUTHZ_RESOURCE_MANAGER_HANDLE AuthzResourceManager
,
208 IN PLARGE_INTEGER pExpirationTime
,
210 IN PVOID DynamicGroupArgs
,
211 OUT PAUTHZ_CLIENT_CONTEXT_HANDLE pAuthzClientContext
)
224 AuthzInitializeObjectAccessAuditEvent(IN DWORD Flags
,
225 IN AUTHZ_AUDIT_EVENT_TYPE_HANDLE hAuditEventType
,
226 IN PWSTR szOperationType
,
227 IN PWSTR szObjectType
,
228 IN PWSTR szObjectName
,
229 IN PWSTR szAdditionalInfo
,
230 OUT PAUTHZ_AUDIT_EVENT_HANDLE phAuditEvent
,
231 IN DWORD dwAdditionalParamCount
)
244 AuthzInitializeObjectAccessAuditEvent2(IN DWORD Flags
,
245 IN AUTHZ_AUDIT_EVENT_TYPE_HANDLE hAuditEventType
,
246 IN PWSTR szOperationType
,
247 IN PWSTR szObjectType
,
248 IN PWSTR szObjectName
,
249 IN PWSTR szAdditionalInfo
,
250 IN PWSTR szAdditionalInfo2
,
251 OUT PAUTHZ_AUDIT_EVENT_HANDLE phAuditEvent
,
252 IN DWORD dwAdditionalParameterCount
)
265 AuthzInstallSecurityEventSource(IN DWORD dwFlags
,
266 IN PAUTHZ_SOURCE_SCHEMA_REGISTRATION pRegistration
)
279 AuthzOpenObjectAudit(IN DWORD Flags
,
280 IN AUTHZ_CLIENT_CONTEXT_HANDLE hAuthzClientContext
,
281 IN PAUTHZ_ACCESS_REQUEST pRequest
,
282 IN AUTHZ_AUDIT_EVENT_HANDLE hAuditEvent
,
283 IN PSECURITY_DESCRIPTOR pSecurityDescriptor
,
284 IN PSECURITY_DESCRIPTOR
* SecurityDescriptorArray
,
285 IN DWORD SecurityDescriptorCount
,
286 OUT PAUTHZ_ACCESS_REPLY pReply
)
299 AuthzRegisterSecurityEventSource(IN DWORD dwFlags
,
300 IN PCWSTR szEventSourceName
,
301 IN PAUTHZ_SECURITY_EVENT_PROVIDER_HANDLE phEventProvider
)
314 AuthzReportSecurityEvent(IN DWORD dwFlags
,
315 IN AUTHZ_SECURITY_EVENT_PROVIDER_HANDLE hEventProvider
,
317 IN PSID pUserSid OPTIONAL
,
332 AuthzReportSecurityEventFromParams(IN DWORD dwFlags
,
333 IN AUTHZ_SECURITY_EVENT_PROVIDER_HANDLE hEventProvider
,
335 IN PSID pUserSid OPTIONAL
,
336 IN PAUDIT_PARAMS pParams
)
349 AuthzUninstallSecurityEventSource(IN DWORD dwFlags
,
350 IN PWSTR szEventSourceName
)
363 AuthzUnregisterSecurityEventSource(IN DWORD dwFlags
,
364 IN OUT PAUTHZ_SECURITY_EVENT_PROVIDER_HANDLE phEventProvider
)
372 DllMain(IN HINSTANCE hinstDLL
,
374 IN LPVOID lpvReserved
)
378 case DLL_PROCESS_ATTACH
:
379 hDllInstance
= hinstDLL
;
382 case DLL_THREAD_ATTACH
:
383 case DLL_THREAD_DETACH
:
384 case DLL_PROCESS_DETACH
: