From 29075cd391ae77231190a0327de88767913cb601 Mon Sep 17 00:00:00 2001 From: Alex Ionescu Date: Mon, 20 Jun 2005 18:54:47 +0000 Subject: [PATCH] Add missing types to NDK svn path=/trunk/; revision=16159 --- reactos/include/ndk/rtlfuncs.h | 188 ++++++++++++++++++++++++++++++++- reactos/include/ndk/umtypes.h | 38 ++++++- reactos/include/ndk/zwtypes.h | 7 ++ 3 files changed, 223 insertions(+), 10 deletions(-) diff --git a/reactos/include/ndk/rtlfuncs.h b/reactos/include/ndk/rtlfuncs.h index c4c24177beb..0af658b91c9 100644 --- a/reactos/include/ndk/rtlfuncs.h +++ b/reactos/include/ndk/rtlfuncs.h @@ -328,7 +328,69 @@ RtlAddAccessAllowedAce( ACCESS_MASK AccessMask, PSID Sid ); - + +NTSTATUS +STDCALL +RtlAddAccessAllowedAceEx( + IN OUT PACL pAcl, + IN DWORD dwAceRevision, + IN DWORD AceFlags, + IN DWORD AccessMask, + IN PSID pSid +); + +NTSTATUS +STDCALL +RtlAddAccessDeniedAce( + PACL Acl, + ULONG Revision, + ACCESS_MASK AccessMask, + PSID Sid +); + +NTSTATUS +STDCALL +RtlAddAccessDeniedAceEx( + IN OUT PACL Acl, + IN ULONG Revision, + IN ULONG Flags, + IN ACCESS_MASK AccessMask, + IN PSID Sid +); + +NTSTATUS +STDCALL +RtlAddAuditAccessAceEx( + IN OUT PACL Acl, + IN ULONG Revision, + IN ULONG Flags, + IN ACCESS_MASK AccessMask, + IN PSID Sid, + IN BOOLEAN Success, + IN BOOLEAN Failure +); + +NTSTATUS +STDCALL +RtlAddAce( + PACL Acl, + ULONG Revision, + ULONG StartingIndex, + PACE AceList, + ULONG AceListLength +); + +NTSTATUS +STDCALL +RtlAddAuditAccessAce( + PACL Acl, + ULONG Revision, + ACCESS_MASK AccessMask, + PSID Sid, + BOOLEAN Success, + BOOLEAN Failure +); + NTSTATUS STDCALL RtlAllocateAndInitializeSid( @@ -345,6 +407,20 @@ RtlAllocateAndInitializeSid( OUT PSID *Sid ); +BOOLEAN +STDCALL +RtlAreAllAccessesGranted( + ACCESS_MASK GrantedAccess, + ACCESS_MASK DesiredAccess +); + +BOOLEAN +STDCALL +RtlAreAnyAccessesGranted( + ACCESS_MASK GrantedAccess, + ACCESS_MASK DesiredAccess +); + VOID STDCALL RtlCopyLuid( @@ -410,6 +486,20 @@ RtlCreateSecurityDescriptorRelative( ULONG Revision ); +NTSTATUS +STDCALL +RtlDeleteAce( + PACL Acl, + ULONG AceIndex +); + +BOOLEAN +STDCALL +RtlEqualPrefixSid( + PSID Sid1, + PSID Sid2 +); + BOOLEAN STDCALL RtlEqualSid ( @@ -417,12 +507,35 @@ RtlEqualSid ( IN PSID Sid2 ); +BOOLEAN +STDCALL +RtlFirstFreeAce( + PACL Acl, + PACE* Ace +); + PVOID STDCALL RtlFreeSid ( IN PSID Sid ); +NTSTATUS +STDCALL +RtlGetAce( + PACL Acl, + ULONG AceIndex, + PACE *Ace +); + +NTSTATUS +STDCALL +RtlGetControlSecurityDescriptor( + PSECURITY_DESCRIPTOR SecurityDescriptor, + PSECURITY_DESCRIPTOR_CONTROL Control, + PULONG Revision +); + NTSTATUS STDCALL RtlGetDaclSecurityDescriptor( @@ -457,6 +570,21 @@ RtlGetOwnerSecurityDescriptor( OUT PBOOLEAN OwnerDefaulted ); +BOOLEAN +STDCALL +RtlGetSecurityDescriptorRMControl( + PSECURITY_DESCRIPTOR SecurityDescriptor, + PUCHAR RMControl +); + +PSID_IDENTIFIER_AUTHORITY +STDCALL +RtlIdentifierAuthoritySid(PSID Sid); + +NTSTATUS +STDCALL +RtlImpersonateSelf(IN SECURITY_IMPERSONATION_LEVEL ImpersonationLevel); + NTSTATUS STDCALL RtlInitializeSid( @@ -473,12 +601,19 @@ ULONG STDCALL RtlLengthSid(IN PSID Sid); -#if (VER_PRODUCTBUILD >= 2195) +NTSTATUS +STDCALL +RtlQueryInformationAcl( + PACL Acl, + PVOID Information, + ULONG InformationLength, + ACL_INFORMATION_CLASS InformationClass +); NTSTATUS STDCALL RtlSelfRelativeToAbsoluteSD( - IN PSECURITY_DESCRIPTOR SelfRelativeSD, + IN PSECURITY_DESCRIPTOR_RELATIVE SelfRelativeSD, OUT PSECURITY_DESCRIPTOR AbsoluteSD, IN PULONG AbsoluteSDSize, IN PACL Dacl, @@ -491,7 +626,13 @@ RtlSelfRelativeToAbsoluteSD( IN PULONG PrimaryGroupSize ); -#endif /* (VER_PRODUCTBUILD >= 2195) */ +NTSTATUS +STDCALL +RtlSetControlSecurityDescriptor( + IN PSECURITY_DESCRIPTOR SecurityDescriptor, + IN SECURITY_DESCRIPTOR_CONTROL ControlBitsOfInterest, + IN SECURITY_DESCRIPTOR_CONTROL ControlBitsToSet +); NTSTATUS STDCALL @@ -510,6 +651,15 @@ RtlSetGroupSecurityDescriptor( IN BOOLEAN GroupDefaulted ); +NTSTATUS +STDCALL +RtlSetInformationAcl( + PACL Acl, + PVOID Information, + ULONG InformationLength, + ACL_INFORMATION_CLASS InformationClass +); + NTSTATUS STDCALL RtlSetOwnerSecurityDescriptor( @@ -527,6 +677,13 @@ RtlSetSaclSecurityDescriptor( IN BOOLEAN SaclDefaulted ); +VOID +STDCALL +RtlSetSecurityDescriptorRMControl( + PSECURITY_DESCRIPTOR SecurityDescriptor, + PUCHAR RMControl +); + PUCHAR STDCALL RtlSubAuthorityCountSid( @@ -540,6 +697,18 @@ RtlSubAuthoritySid( IN ULONG SubAuthority ); +BOOLEAN +STDCALL +RtlValidRelativeSecurityDescriptor( + IN PSECURITY_DESCRIPTOR_RELATIVE SecurityDescriptorInput, + IN ULONG SecurityDescriptorLength, + IN SECURITY_INFORMATION RequiredInformation +); + +BOOLEAN +STDCALL +RtlValidSecurityDescriptor(IN PSECURITY_DESCRIPTOR SecurityDescriptor); + BOOLEAN STDCALL RtlValidSid(IN PSID Sid); @@ -1229,7 +1398,16 @@ RtlResetRtlTranslations(IN PNLSTABLEINFO NlsTable); /* * Misc String Functions - */ + */ +BOOLEAN +STDCALL +RtlDosPathNameToNtPathName_U( + PWSTR DosName, + PUNICODE_STRING NtName, + PWSTR *ShortName, + PCURDIR CurrentDirectory +); + BOOLEAN STDCALL RtlIsNameLegalDOS8Dot3( diff --git a/reactos/include/ndk/umtypes.h b/reactos/include/ndk/umtypes.h index 1011c20303d..e1235bf459a 100644 --- a/reactos/include/ndk/umtypes.h +++ b/reactos/include/ndk/umtypes.h @@ -568,6 +568,7 @@ struct _EVENT_TRACE_HEADER; /* <--- We might want to declare this one */ typedef ULONG EXECUTION_STATE; /* Basic NT Types */ +#if !defined(_NTSECAPI_H) && !defined(_SUBAUTH_H) typedef struct _UNICODE_STRING { USHORT Length; @@ -582,10 +583,6 @@ typedef struct _STRING USHORT MaximumLength; PCHAR Buffer; } STRING, *PSTRING; -typedef STRING ANSI_STRING; -typedef PSTRING PANSI_STRING; -typedef STRING OEM_STRING; -typedef PSTRING POEM_STRING; typedef struct _OBJECT_ATTRIBUTES { @@ -596,6 +593,12 @@ typedef struct _OBJECT_ATTRIBUTES PVOID SecurityDescriptor; PVOID SecurityQualityOfService; } OBJECT_ATTRIBUTES, *POBJECT_ATTRIBUTES; +#endif + +typedef STRING ANSI_STRING; +typedef PSTRING PANSI_STRING; +typedef STRING OEM_STRING; +typedef PSTRING POEM_STRING; typedef struct _IO_STATUS_BLOCK { @@ -702,9 +705,34 @@ typedef struct _KEY_WRITE_TIME_INFORMATION /* Class 1 */ typedef struct _KEY_USER_FLAGS_INFORMATION { - ULONG UserFlags; + ULONG UserFlags; } KEY_USER_FLAGS_INFORMATION, *PKEY_USER_FLAGS_INFORMATION; +typedef struct _KEY_FULL_INFORMATION +{ + LARGE_INTEGER LastWriteTime; + ULONG TitleIndex; + ULONG ClassOffset; + ULONG ClassLength; + ULONG SubKeys; + ULONG MaxNameLen; + ULONG MaxClassLen; + ULONG Values; + ULONG MaxValueNameLen; + ULONG MaxValueDataLen; + WCHAR Class[1]; +} KEY_FULL_INFORMATION, *PKEY_FULL_INFORMATION; + +typedef struct _KEY_NODE_INFORMATION +{ + LARGE_INTEGER LastWriteTime; + ULONG TitleIndex; + ULONG ClassOffset; + ULONG ClassLength; + ULONG NameLength; + WCHAR Name[1]; +} KEY_NODE_INFORMATION, *PKEY_NODE_INFORMATION; + /* * File */ diff --git a/reactos/include/ndk/zwtypes.h b/reactos/include/ndk/zwtypes.h index 0f13bb81bdc..68386daad10 100644 --- a/reactos/include/ndk/zwtypes.h +++ b/reactos/include/ndk/zwtypes.h @@ -406,6 +406,13 @@ typedef struct _KERNEL_USER_TIMES LARGE_INTEGER UserTime; } KERNEL_USER_TIMES, *PKERNEL_USER_TIMES; +/* Class 9 */ +typedef struct _PROCESS_ACCESS_TOKEN +{ + HANDLE Token; + HANDLE Thread; +} PROCESS_ACCESS_TOKEN, *PPROCESS_ACCESS_TOKEN; + /* Class 16 */ typedef struct _PROCESS_PRIORITY_CLASS {