Add missing types to NDK
Modified: trunk/reactos/include/ndk/rtlfuncs.h
Modified: trunk/reactos/include/ndk/umtypes.h
Modified: trunk/reactos/include/ndk/zwtypes.h

Modified: trunk/reactos/include/ndk/rtlfuncs.h
--- trunk/reactos/include/ndk/rtlfuncs.h	2005-06-20 18:48:32 UTC (rev 16158)
+++ trunk/reactos/include/ndk/rtlfuncs.h	2005-06-20 18:54:47 UTC (rev 16159)
@@ -328,7 +328,69 @@
     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 @@
     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 @@
     ULONG Revision
 );
 
+NTSTATUS 
+STDCALL
+RtlDeleteAce(
+    PACL Acl,
+    ULONG AceIndex
+);
+
+BOOLEAN 
+STDCALL
+RtlEqualPrefixSid(
+    PSID Sid1,
+    PSID Sid2
+);
+         
 BOOLEAN
 STDCALL
 RtlEqualSid (
@@ -417,12 +507,35 @@
     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,8 +570,23 @@
     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(
     IN OUT PSID Sid,
     IN PSID_IDENTIFIER_AUTHORITY IdentifierAuthority,
@@ -473,12 +601,19 @@
 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 @@
     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 @@
     IN BOOLEAN GroupDefaulted
 );
 
+NTSTATUS 
+STDCALL
+RtlSetInformationAcl(
+    PACL Acl,
+    PVOID Information,
+    ULONG InformationLength,
+    ACL_INFORMATION_CLASS InformationClass
+);
+
 NTSTATUS
 STDCALL
 RtlSetOwnerSecurityDescriptor(
@@ -527,6 +677,13 @@
     IN BOOLEAN SaclDefaulted
 );
 
+VOID 
+STDCALL
+RtlSetSecurityDescriptorRMControl(
+    PSECURITY_DESCRIPTOR SecurityDescriptor,
+    PUCHAR RMControl
+);
+
 PUCHAR
 STDCALL
 RtlSubAuthorityCountSid(
@@ -542,6 +699,18 @@
 
 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);
 
 BOOLEAN 
@@ -1229,9 +1398,18 @@
 
 /*
  * Misc String Functions
- */                   
+ */     
 BOOLEAN
 STDCALL
+RtlDosPathNameToNtPathName_U(
+    PWSTR DosName,
+    PUNICODE_STRING NtName,
+    PWSTR *ShortName,
+    PCURDIR CurrentDirectory
+);
+                 
+BOOLEAN
+STDCALL
 RtlIsNameLegalDOS8Dot3(
     IN PUNICODE_STRING UnicodeName,
     IN PANSI_STRING AnsiName,

Modified: trunk/reactos/include/ndk/umtypes.h
--- trunk/reactos/include/ndk/umtypes.h	2005-06-20 18:48:32 UTC (rev 16158)
+++ trunk/reactos/include/ndk/umtypes.h	2005-06-20 18:54:47 UTC (rev 16159)
@@ -568,6 +568,7 @@
 typedef ULONG EXECUTION_STATE;
 
 /* Basic NT Types */
+#if !defined(_NTSECAPI_H) && !defined(_SUBAUTH_H)
 typedef struct _UNICODE_STRING 
 {
     USHORT Length;
@@ -582,10 +583,6 @@
     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,7 +593,13 @@
     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 
 {
     union 
@@ -702,9 +705,34 @@
 /* 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
  */

Modified: trunk/reactos/include/ndk/zwtypes.h
--- trunk/reactos/include/ndk/zwtypes.h	2005-06-20 18:48:32 UTC (rev 16158)
+++ trunk/reactos/include/ndk/zwtypes.h	2005-06-20 18:54:47 UTC (rev 16159)
@@ -406,6 +406,13 @@
     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
 {