Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenauthz.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
1.7.6.1
|