* Sync up to trunk r55544.
[reactos.git] / include / xdk / setypes.h
index 2cf1ccf..3eef24d 100644 (file)
@@ -212,8 +212,8 @@ typedef struct _ACCESS_STATE {
 
 typedef VOID
 (NTAPI *PNTFS_DEREF_EXPORTED_SECURITY_DESCRIPTOR)(
-  IN PVOID Vcb,
-  IN PSECURITY_DESCRIPTOR SecurityDescriptor);
+  _In_ PVOID Vcb,
+  _In_ PSECURITY_DESCRIPTOR SecurityDescriptor);
 
 #ifndef _NTLSA_IFS_
 
@@ -407,7 +407,11 @@ typedef struct _SID {
   UCHAR Revision;
   UCHAR SubAuthorityCount;
   SID_IDENTIFIER_AUTHORITY IdentifierAuthority;
+#ifdef MIDL_PASS
+  [size_is(SubAuthorityCount)] ULONG SubAuthority[*];
+#else
   ULONG SubAuthority[ANYSIZE_ARRAY];
+#endif
 } SID, *PISID;
 #endif
 
@@ -415,6 +419,10 @@ typedef struct _SID {
 #define SID_MAX_SUB_AUTHORITIES         15
 #define SID_RECOMMENDED_SUB_AUTHORITIES 1
 
+#ifndef MIDL_PASS
+#define SECURITY_MAX_SID_SIZE (sizeof(SID) - sizeof(ULONG) + (SID_MAX_SUB_AUTHORITIES * sizeof(ULONG)))
+#endif
+
 typedef enum _SID_NAME_USE {
   SidTypeUser = 1,
   SidTypeGroup,
@@ -429,7 +437,11 @@ typedef enum _SID_NAME_USE {
 } SID_NAME_USE, *PSID_NAME_USE;
 
 typedef struct _SID_AND_ATTRIBUTES {
+#ifdef MIDL_PASS
+  PISID Sid;
+#else
   PSID Sid;
+#endif
   ULONG Attributes;
 } SID_AND_ATTRIBUTES, *PSID_AND_ATTRIBUTES;
 typedef SID_AND_ATTRIBUTES SID_AND_ATTRIBUTES_ARRAY[ANYSIZE_ARRAY];
@@ -931,7 +943,11 @@ typedef struct _TOKEN_USER {
 
 typedef struct _TOKEN_GROUPS {
   ULONG GroupCount;
+#ifdef MIDL_PASS
+  [size_is(GroupCount)] SID_AND_ATTRIBUTES Groups[*];
+#else
   SID_AND_ATTRIBUTES Groups[ANYSIZE_ARRAY];
+#endif
 } TOKEN_GROUPS,*PTOKEN_GROUPS,*LPTOKEN_GROUPS;
 
 typedef struct _TOKEN_PRIVILEGES {