Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygensefuncs.h
Go to the documentation of this file.
00001 /*++ NDK Version: 0098 00002 00003 Copyright (c) Alex Ionescu. All rights reserved. 00004 00005 Header Name: 00006 00007 sefuncs.h 00008 00009 Abstract: 00010 00011 Function definitions for the security manager. 00012 00013 Author: 00014 00015 Alex Ionescu (alexi@tinykrnl.org) - Updated - 27-Feb-2006 00016 00017 --*/ 00018 00019 #ifndef _SEFUNCS_H 00020 #define _SEFUNCS_H 00021 00022 // 00023 // Dependencies 00024 // 00025 #include <umtypes.h> 00026 00027 #ifndef NTOS_MODE_USER 00028 00029 // 00030 // Security Descriptors 00031 // 00032 NTKERNELAPI 00033 NTSTATUS 00034 NTAPI 00035 SeCaptureSecurityDescriptor( 00036 IN PSECURITY_DESCRIPTOR OriginalSecurityDescriptor, 00037 IN KPROCESSOR_MODE CurrentMode, 00038 IN POOL_TYPE PoolType, 00039 IN BOOLEAN CaptureIfKernel, 00040 OUT PSECURITY_DESCRIPTOR *CapturedSecurityDescriptor 00041 ); 00042 00043 NTKERNELAPI 00044 NTSTATUS 00045 NTAPI 00046 SeReleaseSecurityDescriptor( 00047 IN PSECURITY_DESCRIPTOR CapturedSecurityDescriptor, 00048 IN KPROCESSOR_MODE CurrentMode, 00049 IN BOOLEAN CaptureIfKernelMode 00050 ); 00051 00052 // 00053 // Access States 00054 // 00055 NTKERNELAPI 00056 NTSTATUS 00057 NTAPI 00058 SeCreateAccessState( 00059 PACCESS_STATE AccessState, 00060 PAUX_ACCESS_DATA AuxData, 00061 ACCESS_MASK Access, 00062 PGENERIC_MAPPING GenericMapping 00063 ); 00064 00065 NTKERNELAPI 00066 VOID 00067 NTAPI 00068 SeDeleteAccessState( 00069 IN PACCESS_STATE AccessState 00070 ); 00071 00072 // 00073 // Impersonation 00074 // 00075 NTKERNELAPI 00076 SECURITY_IMPERSONATION_LEVEL 00077 NTAPI 00078 SeTokenImpersonationLevel( 00079 IN PACCESS_TOKEN Token 00080 ); 00081 00082 #endif 00083 00084 // 00085 // Native Calls 00086 // 00087 NTSYSCALLAPI 00088 NTSTATUS 00089 NTAPI 00090 NtAccessCheck( 00091 IN PSECURITY_DESCRIPTOR SecurityDescriptor, 00092 IN HANDLE ClientToken, 00093 IN ACCESS_MASK DesiredAccess, 00094 IN PGENERIC_MAPPING GenericMapping, 00095 OUT PPRIVILEGE_SET PrivilegeSet, 00096 OUT PULONG ReturnLength, 00097 OUT PACCESS_MASK GrantedAccess, 00098 OUT PNTSTATUS AccessStatus 00099 ); 00100 00101 NTSTATUS 00102 NTAPI 00103 NtAccessCheckByType( 00104 IN PSECURITY_DESCRIPTOR SecurityDescriptor, 00105 IN PSID PrincipalSelfSid, 00106 IN HANDLE ClientToken, 00107 IN ACCESS_MASK DesiredAccess, 00108 IN POBJECT_TYPE_LIST ObjectTypeList, 00109 IN ULONG ObjectTypeLength, 00110 IN PGENERIC_MAPPING GenericMapping, 00111 IN PPRIVILEGE_SET PrivilegeSet, 00112 IN ULONG PrivilegeSetLength, 00113 OUT PACCESS_MASK GrantedAccess, 00114 OUT PNTSTATUS AccessStatus 00115 ); 00116 00117 NTSTATUS 00118 NTAPI 00119 NtAccessCheckByTypeResultList( 00120 IN PSECURITY_DESCRIPTOR SecurityDescriptor, 00121 IN PSID PrincipalSelfSid, 00122 IN HANDLE ClientToken, 00123 IN ACCESS_MASK DesiredAccess, 00124 IN POBJECT_TYPE_LIST ObjectTypeList, 00125 IN ULONG ObjectTypeLength, 00126 IN PGENERIC_MAPPING GenericMapping, 00127 IN PPRIVILEGE_SET PrivilegeSet, 00128 IN ULONG PrivilegeSetLength, 00129 OUT PACCESS_MASK GrantedAccess, 00130 OUT PNTSTATUS AccessStatus 00131 ); 00132 00133 NTSYSCALLAPI 00134 NTSTATUS 00135 NTAPI 00136 NtAccessCheckAndAuditAlarm( 00137 IN PUNICODE_STRING SubsystemName, 00138 IN PVOID HandleId, 00139 IN PUNICODE_STRING ObjectTypeName, 00140 IN PUNICODE_STRING ObjectName, 00141 IN PSECURITY_DESCRIPTOR SecurityDescriptor, 00142 IN ACCESS_MASK DesiredAccess, 00143 IN PGENERIC_MAPPING GenericMapping, 00144 IN BOOLEAN ObjectCreation, 00145 OUT PACCESS_MASK GrantedAccess, 00146 OUT PNTSTATUS AccessStatus, 00147 OUT PBOOLEAN GenerateOnClose 00148 ); 00149 00150 NTSYSCALLAPI 00151 NTSTATUS 00152 NTAPI 00153 NtAdjustGroupsToken( 00154 IN HANDLE TokenHandle, 00155 IN BOOLEAN ResetToDefault, 00156 IN PTOKEN_GROUPS NewState, 00157 IN ULONG BufferLength, 00158 OUT PTOKEN_GROUPS PreviousState OPTIONAL, 00159 OUT PULONG ReturnLength 00160 ); 00161 00162 NTSYSCALLAPI 00163 NTSTATUS 00164 NTAPI 00165 NtAdjustPrivilegesToken( 00166 IN HANDLE TokenHandle, 00167 IN BOOLEAN DisableAllPrivileges, 00168 IN PTOKEN_PRIVILEGES NewState, 00169 IN ULONG BufferLength, 00170 OUT PTOKEN_PRIVILEGES PreviousState, 00171 OUT PULONG ReturnLength 00172 ); 00173 00174 NTSYSCALLAPI 00175 NTSTATUS 00176 NTAPI 00177 NtAllocateLocallyUniqueId( 00178 OUT LUID *LocallyUniqueId 00179 ); 00180 00181 NTSYSCALLAPI 00182 NTSTATUS 00183 NTAPI 00184 NtAllocateUuids( 00185 PULARGE_INTEGER Time, 00186 PULONG Range, 00187 PULONG Sequence, 00188 PUCHAR Seed 00189 ); 00190 00191 NTSYSCALLAPI 00192 NTSTATUS 00193 NTAPI 00194 NtCompareTokens( 00195 IN HANDLE FirstTokenHandle, 00196 IN HANDLE SecondTokenHandle, 00197 OUT PBOOLEAN Equal); 00198 00199 NTSYSCALLAPI 00200 NTSTATUS 00201 NTAPI 00202 NtCreateToken( 00203 OUT PHANDLE TokenHandle, 00204 IN ACCESS_MASK DesiredAccess, 00205 IN POBJECT_ATTRIBUTES ObjectAttributes, 00206 IN TOKEN_TYPE TokenType, 00207 IN PLUID AuthenticationId, 00208 IN PLARGE_INTEGER ExpirationTime, 00209 IN PTOKEN_USER TokenUser, 00210 IN PTOKEN_GROUPS TokenGroups, 00211 IN PTOKEN_PRIVILEGES TokenPrivileges, 00212 IN PTOKEN_OWNER TokenOwner, 00213 IN PTOKEN_PRIMARY_GROUP TokenPrimaryGroup, 00214 IN PTOKEN_DEFAULT_DACL TokenDefaultDacl, 00215 IN PTOKEN_SOURCE TokenSource 00216 ); 00217 00218 NTSYSCALLAPI 00219 NTSTATUS 00220 NTAPI 00221 NtDuplicateToken( 00222 IN HANDLE ExistingTokenHandle, 00223 IN ACCESS_MASK DesiredAccess, 00224 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, 00225 IN BOOLEAN EffectiveOnly, 00226 IN TOKEN_TYPE TokenType, 00227 OUT PHANDLE NewTokenHandle 00228 ); 00229 00230 NTSYSCALLAPI 00231 NTSTATUS 00232 NTAPI 00233 NtImpersonateAnonymousToken( 00234 IN HANDLE Thread 00235 ); 00236 00237 NTSYSCALLAPI 00238 NTSTATUS 00239 NTAPI 00240 NtOpenObjectAuditAlarm( 00241 IN PUNICODE_STRING SubsystemName, 00242 IN PVOID HandleId, 00243 IN PUNICODE_STRING ObjectTypeName, 00244 IN PUNICODE_STRING ObjectName, 00245 IN PSECURITY_DESCRIPTOR SecurityDescriptor, 00246 IN HANDLE ClientToken, 00247 IN ULONG DesiredAccess, 00248 IN ULONG GrantedAccess, 00249 IN PPRIVILEGE_SET Privileges, 00250 IN BOOLEAN ObjectCreation, 00251 IN BOOLEAN AccessGranted, 00252 OUT PBOOLEAN GenerateOnClose 00253 ); 00254 00255 NTSYSCALLAPI 00256 NTSTATUS 00257 NTAPI 00258 NtOpenProcessToken( 00259 IN HANDLE ProcessHandle, 00260 IN ACCESS_MASK DesiredAccess, 00261 OUT PHANDLE TokenHandle 00262 ); 00263 00264 NTSYSCALLAPI 00265 NTSTATUS 00266 NTAPI 00267 NtOpenProcessTokenEx( 00268 IN HANDLE ProcessHandle, 00269 IN ACCESS_MASK DesiredAccess, 00270 IN ULONG HandleAttributes, 00271 OUT PHANDLE TokenHandle 00272 ); 00273 00274 NTSYSCALLAPI 00275 NTSTATUS 00276 NTAPI 00277 NtPrivilegeCheck( 00278 IN HANDLE ClientToken, 00279 IN PPRIVILEGE_SET RequiredPrivileges, 00280 IN PBOOLEAN Result 00281 ); 00282 00283 NTSYSCALLAPI 00284 NTSTATUS 00285 NTAPI 00286 NtPrivilegedServiceAuditAlarm( 00287 IN PUNICODE_STRING SubsystemName, 00288 IN PUNICODE_STRING ServiceName, 00289 IN HANDLE ClientToken, 00290 IN PPRIVILEGE_SET Privileges, 00291 IN BOOLEAN AccessGranted 00292 ); 00293 00294 NTSYSCALLAPI 00295 NTSTATUS 00296 NTAPI 00297 NtPrivilegeObjectAuditAlarm( 00298 IN PUNICODE_STRING SubsystemName, 00299 IN PVOID HandleId, 00300 IN HANDLE ClientToken, 00301 IN ULONG DesiredAccess, 00302 IN PPRIVILEGE_SET Privileges, 00303 IN BOOLEAN AccessGranted 00304 ); 00305 00306 NTSYSCALLAPI 00307 NTSTATUS 00308 NTAPI 00309 NtQueryInformationToken( 00310 IN HANDLE TokenHandle, 00311 IN TOKEN_INFORMATION_CLASS TokenInformationClass, 00312 OUT PVOID TokenInformation, 00313 IN ULONG TokenInformationLength, 00314 OUT PULONG ReturnLength 00315 ); 00316 00317 NTSYSCALLAPI 00318 NTSTATUS 00319 NTAPI 00320 NtSetInformationToken( 00321 IN HANDLE TokenHandle, 00322 IN TOKEN_INFORMATION_CLASS TokenInformationClass, 00323 OUT PVOID TokenInformation, 00324 IN ULONG TokenInformationLength 00325 ); 00326 00327 NTSYSAPI 00328 NTSTATUS 00329 NTAPI 00330 ZwAccessCheck( 00331 IN PSECURITY_DESCRIPTOR SecurityDescriptor, 00332 IN HANDLE ClientToken, 00333 IN ACCESS_MASK DesiredAccess, 00334 IN PGENERIC_MAPPING GenericMapping, 00335 OUT PPRIVILEGE_SET PrivilegeSet, 00336 OUT PULONG ReturnLength, 00337 OUT PACCESS_MASK GrantedAccess, 00338 OUT PNTSTATUS AccessStatus 00339 ); 00340 00341 NTSYSAPI 00342 NTSTATUS 00343 NTAPI 00344 ZwAdjustGroupsToken( 00345 IN HANDLE TokenHandle, 00346 IN BOOLEAN ResetToDefault, 00347 IN PTOKEN_GROUPS NewState, 00348 IN ULONG BufferLength, 00349 OUT PTOKEN_GROUPS PreviousState OPTIONAL, 00350 OUT PULONG ReturnLength 00351 ); 00352 00353 NTSYSAPI 00354 NTSTATUS 00355 NTAPI 00356 ZwAdjustPrivilegesToken( 00357 IN HANDLE TokenHandle, 00358 IN BOOLEAN DisableAllPrivileges, 00359 IN PTOKEN_PRIVILEGES NewState, 00360 IN ULONG BufferLength, 00361 OUT PTOKEN_PRIVILEGES PreviousState, 00362 OUT PULONG ReturnLength 00363 ); 00364 00365 NTSYSAPI 00366 NTSTATUS 00367 NTAPI 00368 ZwAllocateLocallyUniqueId( 00369 OUT LUID *LocallyUniqueId 00370 ); 00371 00372 NTSYSAPI 00373 NTSTATUS 00374 NTAPI 00375 ZwAllocateUuids( 00376 PULARGE_INTEGER Time, 00377 PULONG Range, 00378 PULONG Sequence, 00379 PUCHAR Seed 00380 ); 00381 00382 NTSYSAPI 00383 NTSTATUS 00384 NTAPI 00385 ZwCreateToken( 00386 OUT PHANDLE TokenHandle, 00387 IN ACCESS_MASK DesiredAccess, 00388 IN POBJECT_ATTRIBUTES ObjectAttributes, 00389 IN TOKEN_TYPE TokenType, 00390 IN PLUID AuthenticationId, 00391 IN PLARGE_INTEGER ExpirationTime, 00392 IN PTOKEN_USER TokenUser, 00393 IN PTOKEN_GROUPS TokenGroups, 00394 IN PTOKEN_PRIVILEGES TokenPrivileges, 00395 IN PTOKEN_OWNER TokenOwner, 00396 IN PTOKEN_PRIMARY_GROUP TokenPrimaryGroup, 00397 IN PTOKEN_DEFAULT_DACL TokenDefaultDacl, 00398 IN PTOKEN_SOURCE TokenSource 00399 ); 00400 00401 NTSYSAPI 00402 NTSTATUS 00403 NTAPI 00404 ZwDuplicateToken( 00405 IN HANDLE ExistingTokenHandle, 00406 IN ACCESS_MASK DesiredAccess, 00407 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, 00408 IN BOOLEAN EffectiveOnly, 00409 IN TOKEN_TYPE TokenType, 00410 OUT PHANDLE NewTokenHandle 00411 ); 00412 00413 NTSYSAPI 00414 NTSTATUS 00415 NTAPI 00416 ZwImpersonateAnonymousToken( 00417 IN HANDLE Thread 00418 ); 00419 00420 NTSYSAPI 00421 NTSTATUS 00422 NTAPI 00423 ZwOpenObjectAuditAlarm( 00424 IN PUNICODE_STRING SubsystemName, 00425 IN PVOID HandleId, 00426 IN PUNICODE_STRING ObjectTypeName, 00427 IN PUNICODE_STRING ObjectName, 00428 IN PSECURITY_DESCRIPTOR SecurityDescriptor, 00429 IN HANDLE ClientToken, 00430 IN ULONG DesiredAccess, 00431 IN ULONG GrantedAccess, 00432 IN PPRIVILEGE_SET Privileges, 00433 IN BOOLEAN ObjectCreation, 00434 IN BOOLEAN AccessGranted, 00435 OUT PBOOLEAN GenerateOnClose 00436 ); 00437 00438 NTSYSAPI 00439 NTSTATUS 00440 NTAPI 00441 ZwOpenProcessToken( 00442 IN HANDLE ProcessHandle, 00443 IN ACCESS_MASK DesiredAccess, 00444 OUT PHANDLE TokenHandle 00445 ); 00446 00447 NTSYSAPI 00448 NTSTATUS 00449 NTAPI 00450 ZwOpenProcessTokenEx( 00451 IN HANDLE ProcessHandle, 00452 IN ACCESS_MASK DesiredAccess, 00453 IN ULONG HandleAttributes, 00454 OUT PHANDLE TokenHandle 00455 ); 00456 00457 NTSYSAPI 00458 NTSTATUS 00459 NTAPI 00460 ZwPrivilegeCheck( 00461 IN HANDLE ClientToken, 00462 IN PPRIVILEGE_SET RequiredPrivileges, 00463 IN PBOOLEAN Result 00464 ); 00465 00466 NTSYSAPI 00467 NTSTATUS 00468 NTAPI 00469 ZwPrivilegedServiceAuditAlarm( 00470 IN PUNICODE_STRING SubsystemName, 00471 IN PUNICODE_STRING ServiceName, 00472 IN HANDLE ClientToken, 00473 IN PPRIVILEGE_SET Privileges, 00474 IN BOOLEAN AccessGranted 00475 ); 00476 00477 NTSYSAPI 00478 NTSTATUS 00479 NTAPI 00480 ZwPrivilegeObjectAuditAlarm( 00481 IN PUNICODE_STRING SubsystemName, 00482 IN PVOID HandleId, 00483 IN HANDLE ClientToken, 00484 IN ULONG DesiredAccess, 00485 IN PPRIVILEGE_SET Privileges, 00486 IN BOOLEAN AccessGranted 00487 ); 00488 00489 NTSYSAPI 00490 NTSTATUS 00491 NTAPI 00492 ZwQueryInformationToken( 00493 IN HANDLE TokenHandle, 00494 IN TOKEN_INFORMATION_CLASS TokenInformationClass, 00495 OUT PVOID TokenInformation, 00496 IN ULONG TokenInformationLength, 00497 OUT PULONG ReturnLength 00498 ); 00499 00500 NTSYSAPI 00501 NTSTATUS 00502 NTAPI 00503 ZwSetInformationToken( 00504 IN HANDLE TokenHandle, 00505 IN TOKEN_INFORMATION_CLASS TokenInformationClass, 00506 OUT PVOID TokenInformation, 00507 IN ULONG TokenInformationLength 00508 ); 00509 #endif Generated on Sat May 26 2012 04:29:45 for ReactOS by
1.7.6.1
|