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

sefuncs.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 doxygen 1.7.6.1

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