ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

authz.h
Go to the documentation of this file.
00001 /*
00002  * authz.h
00003  *
00004  * Authorization Framework
00005  *
00006  * THIS SOFTWARE IS NOT COPYRIGHTED
00007  *
00008  * This source code is offered for use in the public domain. You may
00009  * use, modify or distribute it freely.
00010  *
00011  * This code is distributed in the hope that it will be useful but
00012  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
00013  * DISCLAIMED. This includes but is not limited to warranties of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
00015  *
00016  */
00017 #ifndef __AUTHZ_H
00018 #define __AUTHZ_H
00019 
00020 #if !defined(_AUTHZ_)
00021 #define AUTHZAPI DECLSPEC_IMPORT
00022 #else
00023 #define AUTHZAPI
00024 #endif
00025 
00026 #ifdef __cplusplus
00027 extern "C" {
00028 #endif
00029 
00030 #define AUTHZ_ACCESS_CHECK_NO_DEEP_COPY_SD  0x1
00031 
00032 #define AUTHZ_GENERATE_SUCCESS_AUDIT    0x1
00033 #define AUTHZ_GENERATE_FAILURE_AUDIT    0x2
00034 
00035 #define AUTHZ_SKIP_TOKEN_GROUPS 0x2
00036 #define AUTHZ_REQUIRE_S4U_LOGON 0x4
00037 
00038 #define AUTHZ_NO_SUCCESS_AUDIT  0x1
00039 #define AUTHZ_NO_FAILURE_AUDIT  0x2
00040 #define AUTHZ_NO_ALLOC_STRINGS  0x4
00041 
00042 #define AUTHZ_RM_FLAG_NO_AUDIT  0x1
00043 #define AUTHZ_RM_FLAG_INITIALIZE_UNDER_IMPERSONATION    0x2
00044 
00045 typedef HANDLE AUTHZ_CLIENT_CONTEXT_HANDLE, *PAUTHZ_CLIENT_CONTEXT_HANDLE;
00046 typedef HANDLE AUTHZ_AUDIT_INFO_HANDLE, *PAUTHZ_AUDIT_INFO_HANDLE;
00047 typedef HANDLE AUTHZ_AUDIT_EVENT_HANDLE, *PAUTHZ_AUDIT_EVENT_HANDLE;
00048 typedef HANDLE AUTHZ_AUDIT_EVENT_TYPE_HANDLE, *PAUTHZ_AUDIT_EVENT_TYPE_HANDLE;
00049 typedef HANDLE AUTHZ_ACCESS_CHECK_RESULTS_HANDLE, *PAUTHZ_ACCESS_CHECK_RESULTS_HANDLE;
00050 typedef HANDLE AUTHZ_RESOURCE_MANAGER_HANDLE, *PAUTHZ_RESOURCE_MANAGER_HANDLE;
00051 typedef HANDLE AUTHZ_SECURITY_EVENT_PROVIDER_HANDLE, *PAUTHZ_SECURITY_EVENT_PROVIDER_HANDLE;
00052 
00053 #if !defined(_ADTGEN_H)
00054 /* FIXME - AUDIT_PARAMS is defined in adtgen.h!!!!! */
00055 typedef PVOID PAUDIT_PARAMS;
00056 #endif
00057 
00058 typedef enum _AUTHZ_CONTEXT_INFORMATION_CLASS
00059 {
00060     AuthzContextInfoUserSid = 1,
00061     AuthzContextInfoGroupsSids,
00062     AuthzContextInfoRestrictedSids,
00063     AuthzContextInfoPrivileges,
00064     AuthzContextInfoExpirationTime,
00065     AuthzContextInfoServerContext,
00066     AuthzContextInfoIdentifier,
00067     AuthzContextInfoSource,
00068     AuthzContextInfoAll,
00069     AuthzContextInfoAuthenticationId
00070 } AUTHZ_CONTEXT_INFORMATION_CLASS, *PAUTHZ_CONTEXT_INFORMATION_CLASS;
00071 
00072 typedef struct _AUTHZ_ACCESS_REQUEST
00073 {
00074     ACCESS_MASK DesiredAccess;
00075     PSID PrincipalSelfSid;
00076     POBJECT_TYPE_LIST ObjectTypeList;
00077     DWORD ObjectTypeListLength;
00078     PVOID OptionalArguments;
00079 } AUTHZ_ACCESS_REQUEST, *PAUTHZ_ACCESS_REQUEST;
00080 
00081 typedef struct _AUTHZ_ACCESS_REPLY
00082 {
00083     DWORD ResultListLength;
00084     PACCESS_MASK GrantedAccessMask;
00085     PDWORD SaclEvaluationResults;
00086     PDWORD Error;
00087 } AUTHZ_ACCESS_REPLY, *PAUTHZ_ACCESS_REPLY;
00088 
00089 typedef struct _AUTHZ_REGISTRATION_OBJECT_TYPE_NAME_OFFSET
00090 {
00091     PWSTR szObjectTypeName;
00092     DWORD dwOffset;
00093 } AUTHZ_REGISTRATION_OBJECT_TYPE_NAME_OFFSET, *PAUTHZ_REGISTRATION_OBJECT_TYPE_NAME_OFFSET;
00094 
00095 typedef struct _AUTHZ_SOURCE_SCHEMA_REGISTRATION
00096 {
00097     DWORD dwFlags;
00098     PWSTR szEventSourceName;
00099     PWSTR szEventMessageFile;
00100     PWSTR szEventSourceXmlSchemaFile;
00101     PWSTR szEventAccessStringsFile;
00102     PWSTR szExecutableImagePath;
00103     PVOID pReserved;
00104     DWORD dwObjectTypeNameCount;
00105     AUTHZ_REGISTRATION_OBJECT_TYPE_NAME_OFFSET ObjectTypeNames[ANYSIZE_ARRAY];
00106 } AUTHZ_SOURCE_SCHEMA_REGISTRATION, *PAUTHZ_SOURCE_SCHEMA_REGISTRATION;
00107 
00108 typedef BOOL (CALLBACK *PFN_AUTHZ_DYNAMIC_ACCESS_CHECK)(IN AUTHZ_CLIENT_CONTEXT_HANDLE hAuthzClientContext,
00109                                                         IN PACE_HEADER pAce,
00110                                                         IN PVOID pArgs  OPTIONAL,
00111                                                         IN OUT PBOOL pbAceApplicable);
00112 
00113 typedef BOOL (CALLBACK *PFN_AUTHZ_COMPUTE_DYNAMIC_GROUPS)(IN AUTHZ_CLIENT_CONTEXT_HANDLE hAuthzClientContext,
00114                                                           IN PVOID Args,
00115                                                           OUT PSID_AND_ATTRIBUTES* pSidAttrArray,
00116                                                           OUT PDWORD pSidCount,
00117                                                           OUT PSID_AND_ATTRIBUTES* pRestrictedSidAttrArray,
00118                                                           OUT PDWORD pRestrictedSidCount);
00119 
00120 typedef VOID (CALLBACK *PFN_AUTHZ_FREE_DYNAMIC_GROUPS)(IN PSID_AND_ATTRIBUTES pSidAttrArray);
00121 
00122 AUTHZAPI
00123 BOOL
00124 WINAPI
00125 AuthzAccessCheck(IN DWORD flags,
00126                  IN AUTHZ_CLIENT_CONTEXT_HANDLE AuthzClientContext,
00127                  IN PAUTHZ_ACCESS_REQUEST pRequest,
00128                  IN AUTHZ_AUDIT_INFO_HANDLE AuditInfo,
00129                  IN PSECURITY_DESCRIPTOR pSecurityDescriptor,
00130                  IN PSECURITY_DESCRIPTOR* OptionalSecurityDescriptorArray,
00131                  IN DWORD OptionalSecurityDescriptorCount  OPTIONAL,
00132                  IN OUT PAUTHZ_ACCESS_REPLY pReply,
00133                  OUT PAUTHZ_ACCESS_CHECK_RESULTS_HANDLE pAuthzHandle);
00134 
00135 AUTHZAPI
00136 BOOL
00137 WINAPI
00138 AuthzAddSidsToContext(IN AUTHZ_CLIENT_CONTEXT_HANDLE OrigClientContext,
00139                       IN PSID_AND_ATTRIBUTES Sids,
00140                       IN DWORD SidCount,
00141                       IN PSID_AND_ATTRIBUTES RestrictedSids,
00142                       IN DWORD RestrictedSidCount,
00143                       OUT PAUTHZ_CLIENT_CONTEXT_HANDLE pNewClientContext);
00144 
00145 AUTHZAPI
00146 BOOL
00147 WINAPI
00148 AuthzCachedAccessCheck(IN DWORD Flags,
00149                        IN AUTHZ_ACCESS_CHECK_RESULTS_HANDLE AuthzHandle,
00150                        IN PAUTHZ_ACCESS_REQUEST pRequest,
00151                        IN AUTHZ_AUDIT_EVENT_HANDLE AuditInfo,
00152                        OUT PAUTHZ_ACCESS_REPLY pReply);
00153 
00154 AUTHZAPI
00155 BOOL
00156 WINAPI
00157 AuthzEnumerateSecurityEventSources(IN DWORD dwFlags,
00158                                    OUT PAUTHZ_SOURCE_SCHEMA_REGISTRATION Buffer,
00159                                    OUT PDWORD pdwCount,
00160                                    IN OUT PDWORD pdwLength);
00161 
00162 AUTHZAPI
00163 BOOL
00164 WINAPI
00165 AuthzFreeAuditEvent(IN AUTHZ_AUDIT_EVENT_HANDLE pAuditEventInfo);
00166 
00167 AUTHZAPI
00168 BOOL
00169 WINAPI
00170 AuthzFreeContext(IN AUTHZ_CLIENT_CONTEXT_HANDLE AuthzClientContext);
00171 
00172 AUTHZAPI
00173 BOOL
00174 WINAPI
00175 AuthzFreeHandle(IN AUTHZ_ACCESS_CHECK_RESULTS_HANDLE AuthzHandle);
00176 
00177 AUTHZAPI
00178 BOOL
00179 WINAPI
00180 AuthzFreeResourceManager(IN AUTHZ_RESOURCE_MANAGER_HANDLE AuthzResourceManager);
00181 
00182 AUTHZAPI
00183 BOOL
00184 WINAPI
00185 AuthzGetInformationFromContext(IN AUTHZ_CLIENT_CONTEXT_HANDLE hAuthzClientContext,
00186                                IN AUTHZ_CONTEXT_INFORMATION_CLASS InfoClass,
00187                                IN DWORD BufferSize,
00188                                OUT PDWORD pSizeRequired,
00189                                OUT PVOID Buffer);
00190 
00191 AUTHZAPI
00192 BOOL
00193 WINAPI
00194 AuthzInitializeContextFromAuthzContext(IN DWORD flags,
00195                                        IN AUTHZ_CLIENT_CONTEXT_HANDLE AuthzHandle,
00196                                        IN PLARGE_INTEGER ExpirationTime,
00197                                        IN LUID Identifier,
00198                                        IN PVOID DynamicGroupArgs,
00199                                        OUT PAUTHZ_CLIENT_CONTEXT_HANDLE phNewAuthzHandle);
00200 
00201 AUTHZAPI
00202 BOOL
00203 WINAPI
00204 AuthzInitializeContextFromSid(IN DWORD Flags,
00205                               IN PSID UserSid,
00206                               IN AUTHZ_RESOURCE_MANAGER_HANDLE AuthzResourceManager,
00207                               IN PLARGE_INTEGER pExpirationTime,
00208                               IN LUID Identifier,
00209                               IN PVOID DynamicGroupArgs,
00210                               OUT PAUTHZ_CLIENT_CONTEXT_HANDLE pAuthzClientContext);
00211 
00212 AUTHZAPI
00213 BOOL
00214 WINAPI
00215 AuthzInitializeContextFromToken(IN DWORD Flags,
00216                                 IN HANDLE TokenHandle,
00217                                 IN AUTHZ_RESOURCE_MANAGER_HANDLE AuthzResourceManager,
00218                                 IN PLARGE_INTEGER pExpirationTime,
00219                                 IN LUID Identifier,
00220                                 IN PVOID DynamicGroupArgs,
00221                                 OUT PAUTHZ_CLIENT_CONTEXT_HANDLE pAuthzClientContext);
00222 
00223 AUTHZAPI
00224 BOOL
00225 WINAPIV
00226 AuthzInitializeObjectAccessAuditEvent(IN DWORD Flags,
00227                                       IN AUTHZ_AUDIT_EVENT_TYPE_HANDLE hAuditEventType,
00228                                       IN PWSTR szOperationType,
00229                                       IN PWSTR szObjectType,
00230                                       IN PWSTR szObjectName,
00231                                       IN PWSTR szAdditionalInfo,
00232                                       OUT PAUTHZ_AUDIT_EVENT_HANDLE phAuditEvent,
00233                                       IN DWORD dwAdditionalParameterCount,
00234                                       ...);
00235 
00236 AUTHZAPI
00237 BOOL
00238 WINAPIV
00239 AuthzInitializeObjectAccessAuditEvent2(IN DWORD Flags,
00240                                        IN AUTHZ_AUDIT_EVENT_TYPE_HANDLE hAuditEventType,
00241                                        IN PWSTR szOperationType,
00242                                        IN PWSTR szObjectType,
00243                                        IN PWSTR szObjectName,
00244                                        IN PWSTR szAdditionalInfo,
00245                                        IN PWSTR szAdditionalInfo2,
00246                                        OUT PAUTHZ_AUDIT_EVENT_HANDLE phAuditEvent,
00247                                        IN DWORD dwAdditionalParameterCount,
00248                                        ...);
00249 
00250 AUTHZAPI
00251 BOOL
00252 WINAPI
00253 AuthzInitializeResourceManager(IN DWORD flags,
00254                                IN PFN_AUTHZ_DYNAMIC_ACCESS_CHECK pfnAccessCheck,
00255                                IN PFN_AUTHZ_COMPUTE_DYNAMIC_GROUPS pfnComputeDynamicGroups,
00256                                IN PFN_AUTHZ_FREE_DYNAMIC_GROUPS pfnFreeDynamicGroups,
00257                                IN PCWSTR ResourceManagerName,
00258                                IN PAUTHZ_RESOURCE_MANAGER_HANDLE pAuthzResourceManager);
00259 
00260 AUTHZAPI
00261 BOOL
00262 WINAPI
00263 AuthzInstallSecurityEventSource(IN DWORD dwFlags,
00264                                 IN PAUTHZ_SOURCE_SCHEMA_REGISTRATION pRegistration);
00265 
00266 AUTHZAPI
00267 BOOL
00268 WINAPI
00269 AuthzOpenObjectAudit(IN DWORD Flags,
00270                      IN AUTHZ_CLIENT_CONTEXT_HANDLE hAuthzClientContext,
00271                      IN PAUTHZ_ACCESS_REQUEST pRequest,
00272                      IN AUTHZ_AUDIT_EVENT_HANDLE hAuditEvent,
00273                      IN PSECURITY_DESCRIPTOR pSecurityDescriptor,
00274                      IN PSECURITY_DESCRIPTOR* SecurityDescriptorArray,
00275                      IN DWORD SecurityDescriptorCount,
00276                      OUT PAUTHZ_ACCESS_REPLY pReply);
00277 
00278 AUTHZAPI
00279 BOOL
00280 WINAPI
00281 AuthzRegisterSecurityEventSource(IN DWORD dwFlags,
00282                                  IN PCWSTR szEventSourceName,
00283                                  IN PAUTHZ_SECURITY_EVENT_PROVIDER_HANDLE phEventProvider);
00284 
00285 AUTHZAPI
00286 BOOL
00287 WINAPIV
00288 AuthzReportSecurityEvent(IN DWORD dwFlags,
00289                          IN AUTHZ_SECURITY_EVENT_PROVIDER_HANDLE hEventProvider,
00290                          IN DWORD dwAuditId,
00291                          IN PSID pUserSid  OPTIONAL,
00292                          IN DWORD dwCount,
00293                          ...);
00294 
00295 AUTHZAPI
00296 BOOL
00297 WINAPI
00298 AuthzReportSecurityEventFromParams(IN DWORD dwFlags,
00299                                    IN AUTHZ_SECURITY_EVENT_PROVIDER_HANDLE hEventProvider,
00300                                    IN DWORD dwAuditId,
00301                                    IN PSID pUserSid  OPTIONAL,
00302                                    IN PAUDIT_PARAMS pParams);
00303 
00304 AUTHZAPI
00305 BOOL
00306 WINAPI
00307 AuthzUninstallSecurityEventSource(IN DWORD dwFlags,
00308                                   IN PWSTR szEventSourceName);
00309 
00310 AUTHZAPI
00311 BOOL
00312 WINAPI
00313 AuthzUnregisterSecurityEventSource(IN DWORD dwFlags,
00314                                    IN OUT PAUTHZ_SECURITY_EVENT_PROVIDER_HANDLE phEventProvider);
00315 
00316 #ifdef __cplusplus
00317 }
00318 #endif
00319 #endif /* __AUTHZ_H */

Generated on Fri May 25 2012 04:29:43 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.