Fix my previous patch and fix ACCESS_TOKEN being declared as a structure. This is incompatible with DDK/W32API because ACCESS_TOKEN is a PVOID. The real structure is TOKEN. Also, structure has been updated. Modified: trunk/reactos/apps/utils/objdir/objdir.c Modified: trunk/reactos/include/ddk/setypes.h Modified: trunk/reactos/lib/kernel32/file/dosdev.c Modified: trunk/reactos/ntoskrnl/include/internal/se.h Modified: trunk/reactos/ntoskrnl/ps/create.c Modified: trunk/reactos/ntoskrnl/se/acl.c Modified: trunk/reactos/ntoskrnl/se/priv.c Modified: trunk/reactos/ntoskrnl/se/semgr.c Modified: trunk/reactos/ntoskrnl/se/token.c Modified: trunk/reactos/subsys/system/services/database.c Modified: trunk/reactos/subsys/win32k/ntuser/winsta.c Modified: trunk/reactos/w32api/include/ddk/ntapi.h _____
Modified: trunk/reactos/apps/utils/objdir/objdir.c --- trunk/reactos/apps/utils/objdir/objdir.c 2005-01-02 22:17:02 UTC (rev 12739) +++ trunk/reactos/apps/utils/objdir/objdir.c 2005-01-02 23:12:40 UTC (rev 12740) @@ -1,4 +1,4 @@
-/* $Id: objdir.c,v 1.14 2004/08/05 12:11:49 ea Exp $ +/* $Id$ * * DESCRIPTION: Object Manager Simple Explorer * PROGRAMMER: David Welch @@ -173,8 +173,8 @@ OBJECT_ATTRIBUTES ObjectAttributes; NTSTATUS Status; HANDLE DirectoryHandle; - BYTE DirectoryEntry [MAX_DIR_ENTRY * sizeof(DIRECTORY_BASIC_INFORMATION)]; - PDIRECTORY_BASIC_INFORMATION pDirectoryEntry = (PDIRECTORY_BASIC_INFORMATION) DirectoryEntry; + BYTE DirectoryEntry [MAX_DIR_ENTRY * sizeof(OBJECT_DIRECTORY_INFORMATION)]; + POBJECT_DIRECTORY_INFORMATION pDirectoryEntry = (POBJECT_DIRECTORY_INFORMATION) DirectoryEntry; ULONG Context = 0; ULONG ReturnLength = 0; ULONG EntryCount = 0; @@ -296,7 +296,7 @@ */ if (FALSE != Recurse) { - pDirectoryEntry = (PDIRECTORY_BASIC_INFORMATION) DirectoryEntry; + pDirectoryEntry = (POBJECT_DIRECTORY_INFORMATION) DirectoryEntry; while (0 != pDirectoryEntry->ObjectTypeName.Length) { if (0 == wcscmp (L"Directory", pDirectoryEntry->ObjectTypeName.Buffer)) _____
Modified: trunk/reactos/include/ddk/setypes.h --- trunk/reactos/include/ddk/setypes.h 2005-01-02 22:17:02 UTC (rev 12739) +++ trunk/reactos/include/ddk/setypes.h 2005-01-02 23:12:40 UTC (rev 12740) @@ -1,4 +1,4 @@
-/* $Id: setypes.h,v 1.17 2004/12/22 05:06:59 royce Exp $ +/* $Id$ * * COPYRIGHT: See COPYING in the top level directory for details * PROJECT: ReactOS kernel @@ -71,34 +71,66 @@ #define SID_REVISION (1) #define SID_MAX_SUB_AUTHORITIES (15)
-typedef struct _ACCESS_TOKEN -{ - TOKEN_SOURCE TokenSource; /* 0x00 */ +typedef struct _SEP_AUDIT_POLICY_CATEGORIES { + UCHAR System:4; + UCHAR Logon:4; + UCHAR ObjectAccess:4; + UCHAR PrivilegeUse:4; + UCHAR DetailedTracking:4; + UCHAR PolicyChange:4; + UCHAR AccountManagement:4; + UCHAR DirectoryServiceAccess:4; + UCHAR AccountLogon:4; +} SEP_AUDIT_POLICY_CATEGORIES, *PSEP_AUDIT_POLICY_CATEGORIES; + +typedef struct _SEP_AUDIT_POLICY_OVERLAY { + ULONGLONG PolicyBits:36; + UCHAR SetBit:1; +} SEP_AUDIT_POLICY_OVERLAY, *PSEP_AUDIT_POLICY_OVERLAY; + +typedef struct _SEP_AUDIT_POLICY { + union { + SEP_AUDIT_POLICY_CATEGORIES PolicyElements; + SEP_AUDIT_POLICY_OVERLAY PolicyOverlay; + ULONGLONG Overlay; + }; +} SEP_AUDIT_POLICY, *PSEP_AUDIT_POLICY; + +typedef struct _TOKEN { + TOKEN_SOURCE TokenSource; /* 0x00 */ LUID TokenId; /* 0x10 */ LUID AuthenticationId; /* 0x18 */ - LARGE_INTEGER ExpirationTime; /* 0x20 */ - LUID ModifiedId; /* 0x28 */ - ULONG UserAndGroupCount; /* 0x30 */ - ULONG PrivilegeCount; /* 0x34 */ - ULONG VariableLength; /* 0x38 */ - ULONG DynamicCharged; /* 0x3C */ - ULONG DynamicAvailable; /* 0x40 */ - ULONG DefaultOwnerIndex; /* 0x44 */ - PSID_AND_ATTRIBUTES UserAndGroups; /* 0x48 */ - PSID PrimaryGroup; /* 0x4C */ - PLUID_AND_ATTRIBUTES Privileges; /* 0x50 */ - ULONG Unknown1; /* 0x54 */ - PACL DefaultDacl; /* 0x58 */ - TOKEN_TYPE TokenType; /* 0x5C */ - SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; /* 0x60 */ - UCHAR TokenFlags; /* 0x64 */ - UCHAR TokenInUse; /* 0x65 */ - UCHAR Unused[2]; /* 0x66 */ - PVOID ProxyData; /* 0x68 */ - PVOID AuditData; /* 0x6c */ - UCHAR VariablePart[1]; /* 0x70 */ -} ACCESS_TOKEN, *PACCESS_TOKEN; + LUID ParentTokenId; /* 0x20 */ + LARGE_INTEGER ExpirationTime; /* 0x28 */ + struct _ERESOURCE *TokenLock; /* 0x30 */ + ULONG Padding; /* 0x34 */ + SEP_AUDIT_POLICY AuditPolicy; /* 0x38 */ + LUID ModifiedId; /* 0x40 */ + ULONG SessionId; /* 0x48 */ + ULONG UserAndGroupCount; /* 0x4C */ + ULONG RestrictedSidCount; /* 0x50 */ + ULONG PrivilegeCount; /* 0x54 */ + ULONG VariableLength; /* 0x58 */ + ULONG DynamicCharged; /* 0x5C */ + ULONG DynamicAvailable; /* 0x60 */ + ULONG DefaultOwnerIndex; /* 0x64 */ + PSID_AND_ATTRIBUTES UserAndGroups; /* 0x68 */ + PSID_AND_ATTRIBUTES RestrictedSids; /* 0x6C */ + PSID PrimaryGroup; /* 0x70 */ + PLUID_AND_ATTRIBUTES Privileges; /* 0x74 */ + PULONG DynamicPart; /* 0x78 */ + PACL DefaultDacl; /* 0x7C */ + TOKEN_TYPE TokenType; /* 0x80 */ + SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; /* 0x84 */ + ULONG TokenFlags; /* 0x88 */ + ULONG TokenInUse; /* 0x8C */ + PVOID ProxyData; /* 0x90 */ + PVOID AuditData; /* 0x94 */ + LUID OriginatingLogonSession; /* 0x98 */ + UCHAR VariablePart[1]; /* 0xA0 */ +} TOKEN, *PTOKEN;
+typedef PVOID PACCESS_TOKEN;
typedef struct _SECURITY_SUBJECT_CONTEXT { _____
Modified: trunk/reactos/lib/kernel32/file/dosdev.c --- trunk/reactos/lib/kernel32/file/dosdev.c 2005-01-02 22:17:02 UTC (rev 12739) +++ trunk/reactos/lib/kernel32/file/dosdev.c 2005-01-02 23:12:40 UTC (rev 12740) @@ -1,4 +1,4 @@
-/* $Id: dosdev.c,v 1.11 2004/01/23 21:16:03 ekohl Exp $ +/* $Id$ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS system libraries @@ -156,7 +156,7 @@ DWORD ucchMax ) { - PDIRECTORY_BASIC_INFORMATION DirInfo; + POBJECT_DIRECTORY_INFORMATION DirInfo; OBJECT_ATTRIBUTES ObjectAttributes; UNICODE_STRING UnicodeString; HANDLE DirectoryHandle; @@ -252,7 +252,7 @@ RestartScan = TRUE; Context = 0; Ptr = lpTargetPath; - DirInfo = (PDIRECTORY_BASIC_INFORMATION)Buffer; + DirInfo = (POBJECT_DIRECTORY_INFORMATION)Buffer;
while (TRUE) { _____
Modified: trunk/reactos/ntoskrnl/include/internal/se.h --- trunk/reactos/ntoskrnl/include/internal/se.h 2005-01-02 22:17:02 UTC (rev 12739) +++ trunk/reactos/ntoskrnl/include/internal/se.h 2005-01-02 23:12:40 UTC (rev 12740) @@ -111,8 +111,8 @@
BOOLEAN SepInitSDs(VOID);
NTSTATUS STDCALL -SepCreateImpersonationTokenDacl(PACCESS_TOKEN Token, - PACCESS_TOKEN PrimaryToken, +SepCreateImpersonationTokenDacl(PTOKEN Token, + PTOKEN PrimaryToken, PACL *Dacl);
VOID SepInitializeTokenImplementation(VOID); @@ -142,7 +142,7 @@ ULONG a);
BOOLEAN -SepPrivilegeCheck(PACCESS_TOKEN Token, +SepPrivilegeCheck(PTOKEN Token, PLUID_AND_ATTRIBUTES Privileges, ULONG PrivilegeCount, ULONG PrivilegeControl, _____
Modified: trunk/reactos/ntoskrnl/ps/create.c --- trunk/reactos/ntoskrnl/ps/create.c 2005-01-02 22:17:02 UTC (rev 12739) +++ trunk/reactos/ntoskrnl/ps/create.c 2005-01-02 23:12:40 UTC (rev 12740) @@ -1,4 +1,4 @@
-/* $Id: create.c,v 1.89 2004/12/18 15:52:51 hbirr Exp $ +/* $Id$ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -58,7 +58,7 @@ { return(Status); } - ImpersonationLevel = Token->ImpersonationLevel; + ImpersonationLevel = SeTokenImpersonationLevel(Token); } else { _____
Modified: trunk/reactos/ntoskrnl/se/acl.c --- trunk/reactos/ntoskrnl/se/acl.c 2005-01-02 22:17:02 UTC (rev 12739) +++ trunk/reactos/ntoskrnl/se/acl.c 2005-01-02 23:12:40 UTC (rev 12740) @@ -1,4 +1,4 @@
-/* $Id: acl.c,v 1.22 2004/12/10 16:50:37 navaraf Exp $ +/* $Id$ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -220,8 +220,8 @@ }
NTSTATUS STDCALL -SepCreateImpersonationTokenDacl(PACCESS_TOKEN Token, - PACCESS_TOKEN PrimaryToken, +SepCreateImpersonationTokenDacl(PTOKEN Token, + PTOKEN PrimaryToken, PACL *Dacl) { ULONG AclLength; _____
Modified: trunk/reactos/ntoskrnl/se/priv.c --- trunk/reactos/ntoskrnl/se/priv.c 2005-01-02 22:17:02 UTC (rev 12739) +++ trunk/reactos/ntoskrnl/se/priv.c 2005-01-02 23:12:40 UTC (rev 12740) @@ -1,4 +1,4 @@
-/* $Id: priv.c,v 1.11 2004/08/15 16:39:11 chorns Exp $ +/* $Id$ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -98,7 +98,7 @@
BOOLEAN -SepPrivilegeCheck (PACCESS_TOKEN Token, +SepPrivilegeCheck (PTOKEN Token, PLUID_AND_ATTRIBUTES Privileges, ULONG PrivilegeCount, ULONG PrivilegeControl, @@ -223,7 +223,7 @@ IN PBOOLEAN Result) { PLUID_AND_ATTRIBUTES Privilege; - PACCESS_TOKEN Token; + PTOKEN Token; ULONG PrivilegeCount; ULONG PrivilegeControl; ULONG Length; _____
Modified: trunk/reactos/ntoskrnl/se/semgr.c --- trunk/reactos/ntoskrnl/se/semgr.c 2005-01-02 22:17:02 UTC (rev 12739) +++ trunk/reactos/ntoskrnl/se/semgr.c 2005-01-02 23:12:40 UTC (rev 12740) @@ -1,4 +1,4 @@
-/* $Id: semgr.c,v 1.51 2004/11/21 18:35:05 gdalsnes Exp $ +/* $Id$ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -320,7 +320,7 @@ POOL_TYPE PoolType) { PSECURITY_DESCRIPTOR Descriptor; - PACCESS_TOKEN Token; + PTOKEN Token; ULONG OwnerLength = 0; ULONG GroupLength = 0; ULONG DaclLength = 0; @@ -557,10 +557,11 @@
static BOOLEAN -SepSidInToken(PACCESS_TOKEN Token, +SepSidInToken(PACCESS_TOKEN _Token, PSID Sid) { ULONG i; + PTOKEN Token = (PTOKEN)_Token;
if (Token->UserAndGroupCount == 0) { @@ -793,7 +794,7 @@ { SECURITY_SUBJECT_CONTEXT SubjectSecurityContext; KPROCESSOR_MODE PreviousMode; - PACCESS_TOKEN Token; + PTOKEN Token; NTSTATUS Status;
DPRINT("NtAccessCheck() called\n"); _____
Modified: trunk/reactos/ntoskrnl/se/token.c --- trunk/reactos/ntoskrnl/se/token.c 2005-01-02 22:17:02 UTC (rev 12739) +++ trunk/reactos/ntoskrnl/se/token.c 2005-01-02 23:12:40 UTC (rev 12740) @@ -1,4 +1,4 @@
-/* $Id: token.c,v 1.45 2004/12/19 16:16:58 navaraf Exp $ +/* $Id$ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -47,10 +47,11 @@ }
NTSTATUS SeExchangePrimaryToken(PEPROCESS Process, - PACCESS_TOKEN NewToken, + PACCESS_TOKEN NewTokenP, PACCESS_TOKEN* OldTokenP) { - PACCESS_TOKEN OldToken; + PTOKEN OldToken; + PTOKEN NewToken = (PTOKEN)NewTokenP;
if (NewToken->TokenType != TokenPrimary) { @@ -68,7 +69,7 @@ SepTokenObjectType, KernelMode); OldToken->TokenInUse = 0; - *OldTokenP = OldToken; + *OldTokenP = (PACCESS_TOKEN)OldToken; return(STATUS_SUCCESS); }
@@ -88,7 +89,7 @@
NTSTATUS -SepFindPrimaryGroupAndDefaultOwner(PACCESS_TOKEN Token, +SepFindPrimaryGroupAndDefaultOwner(PTOKEN Token, PSID PrimaryGroup, PSID DefaultOwner) { @@ -131,13 +132,13 @@
NTSTATUS -SepDuplicateToken(PACCESS_TOKEN Token, +SepDuplicateToken(PTOKEN Token, POBJECT_ATTRIBUTES ObjectAttributes, BOOLEAN EffectiveOnly, TOKEN_TYPE TokenType, SECURITY_IMPERSONATION_LEVEL Level, KPROCESSOR_MODE PreviousMode, - PACCESS_TOKEN* NewAccessToken) + PTOKEN* NewAccessToken) { NTSTATUS Status; ULONG uLength; @@ -145,14 +146,14 @@
PVOID EndMem;
- PACCESS_TOKEN AccessToken; + PTOKEN AccessToken;
Status = ObCreateObject(PreviousMode, SepTokenObjectType, ObjectAttributes, PreviousMode, NULL, - sizeof(ACCESS_TOKEN), + sizeof(TOKEN), 0, 0, (PVOID*)&AccessToken); @@ -266,8 +267,8 @@ struct _EPROCESS* ParentProcess) { NTSTATUS Status; - PACCESS_TOKEN pNewToken; - PACCESS_TOKEN pParentToken; + PTOKEN pNewToken; + PTOKEN pParentToken;
OBJECT_ATTRIBUTES ObjectAttributes;
@@ -316,6 +317,7 @@ { NTSTATUS Status; OBJECT_ATTRIBUTES ObjectAttributes; + PTOKEN TokenNew;
InitializeObjectAttributes(&ObjectAttributes, NULL, @@ -328,7 +330,9 @@ TokenImpersonation, Level, PreviousMode, - NewToken); + (PTOKEN*)&NewToken); + + *NewToken = (PACCESS_TOKEN)TokenNew; return(Status); }
@@ -517,7 +521,7 @@ VOID STDCALL SepDeleteToken(PVOID ObjectBody) { - PACCESS_TOKEN AccessToken = (PACCESS_TOKEN)ObjectBody; + PTOKEN AccessToken = (PTOKEN)ObjectBody;
if (AccessToken->UserAndGroups) ExFreePool(AccessToken->UserAndGroups); @@ -541,7 +545,7 @@ SepTokenObjectType->TotalObjects = 0; SepTokenObjectType->TotalHandles = 0; SepTokenObjectType->PagedPoolCharge = 0; - SepTokenObjectType->NonpagedPoolCharge = sizeof(ACCESS_TOKEN); + SepTokenObjectType->NonpagedPoolCharge = sizeof(TOKEN); SepTokenObjectType->Mapping = &SepTokenMapping; SepTokenObjectType->Dump = NULL; SepTokenObjectType->Open = NULL; @@ -573,7 +577,7 @@ NTSTATUS Status, LengthStatus; PVOID UnusedInfo; PVOID EndMem; - PACCESS_TOKEN Token; + PTOKEN Token; ULONG Length; PTOKEN_GROUPS PtrTokenGroups; PTOKEN_DEFAULT_DACL PtrDefaultDacl; @@ -901,7 +905,7 @@ IN ULONG TokenInformationLength) { NTSTATUS Status; - PACCESS_TOKEN Token; + PTOKEN Token; TOKEN_OWNER TokenOwnerSet = { 0 }; TOKEN_PRIMARY_GROUP TokenPrimaryGroupSet = { 0 }; DWORD NeededAccess = 0; @@ -1036,8 +1040,8 @@ OUT PHANDLE NewTokenHandle) { KPROCESSOR_MODE PreviousMode; - PACCESS_TOKEN Token; - PACCESS_TOKEN NewToken; + PTOKEN Token; + PTOKEN NewToken; NTSTATUS Status;
PreviousMode = KeGetPreviousMode(); @@ -1213,7 +1217,7 @@ // PLUID_AND_ATTRIBUTES Privileges; KPROCESSOR_MODE PreviousMode; // ULONG PrivilegeCount; - PACCESS_TOKEN Token; + PTOKEN Token; // ULONG Length; ULONG i; ULONG j; @@ -1363,7 +1367,7 @@ ULONG uAuthUserLength = RtlLengthSid(SeAuthenticatedUserSid); ULONG uAdminsLength = RtlLengthSid(SeAliasAdminsSid);
- PACCESS_TOKEN AccessToken; + PTOKEN AccessToken;
PVOID SidArea;
@@ -1375,7 +1379,7 @@ NULL, KernelMode, NULL, - sizeof(ACCESS_TOKEN), + sizeof(TOKEN), 0, 0, (PVOID*)&AccessToken); @@ -1572,7 +1576,7 @@ IN PTOKEN_SOURCE TokenSource) { HANDLE TokenHandle; - PACCESS_TOKEN AccessToken; + PTOKEN AccessToken; NTSTATUS Status; OBJECT_ATTRIBUTES SafeObjectAttributes; POBJECT_ATTRIBUTES ObjectAttributes; @@ -1603,7 +1607,7 @@ ObjectAttributes, ExGetPreviousMode(), NULL, - sizeof(ACCESS_TOKEN), + sizeof(TOKEN), 0, 0, (PVOID*)&AccessToken); @@ -1744,8 +1748,7 @@ SeQueryAuthenticationIdToken(IN PACCESS_TOKEN Token, OUT PLUID LogonId) { - LogonId->LowPart = Token->AuthenticationId.LowPart; - LogonId->HighPart = Token->AuthenticationId.HighPart; + *LogonId = ((PTOKEN)Token)->AuthenticationId;
return STATUS_SUCCESS; } @@ -1754,10 +1757,11 @@ /* * @implemented */ -SECURITY_IMPERSONATION_LEVEL STDCALL +SECURITY_IMPERSONATION_LEVEL +STDCALL SeTokenImpersonationLevel(IN PACCESS_TOKEN Token) { - return Token->ImpersonationLevel; + return ((PTOKEN)Token)->ImpersonationLevel; }
@@ -1767,7 +1771,7 @@ TOKEN_TYPE STDCALL SeTokenType(IN PACCESS_TOKEN Token) { - return Token->TokenType; + return ((PTOKEN)Token)->TokenType; }
@@ -1823,7 +1827,7 @@ OUT PHANDLE TokenHandle) { PETHREAD Thread; - PACCESS_TOKEN Token, NewToken, PrimaryToken; + PTOKEN Token, NewToken, PrimaryToken; BOOLEAN CopyOnOpen, EffectiveOnly; SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; SE_IMPERSONATION_STATE ImpersonationState; _____
Modified: trunk/reactos/subsys/system/services/database.c --- trunk/reactos/subsys/system/services/database.c 2005-01-02 22:17:02 UTC (rev 12739) +++ trunk/reactos/subsys/system/services/database.c 2005-01-02 23:12:40 UTC (rev 12740) @@ -390,7 +390,7 @@
UNICODE_STRING DirName; HANDLE DirHandle; NTSTATUS Status; - PDIRECTORY_BASIC_INFORMATION DirInfo; + POBJECT_DIRECTORY_INFORMATION DirInfo; ULONG BufferLength; ULONG DataLength; ULONG Index; @@ -424,7 +424,7 @@ return(Status); }
- BufferLength = sizeof(DIRECTORY_BASIC_INFORMATION) + + BufferLength = sizeof(OBJECT_DIRECTORY_INFORMATION) + 2 * MAX_PATH * sizeof(WCHAR); DirInfo = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, _____
Modified: trunk/reactos/subsys/win32k/ntuser/winsta.c --- trunk/reactos/subsys/win32k/ntuser/winsta.c 2005-01-02 22:17:02 UTC (rev 12739) +++ trunk/reactos/subsys/win32k/ntuser/winsta.c 2005-01-02 23:12:40 UTC (rev 12740) @@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * - * $Id: winsta.c,v 1.70 2004/12/24 17:45:58 weiden Exp $ + * $Id$ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -1004,7 +1004,7 @@ char InitialBuffer[256], *Buffer; ULONG Context, ReturnLength, BufferSize; DWORD EntryCount; - PDIRECTORY_BASIC_INFORMATION DirEntry; + POBJECT_DIRECTORY_INFORMATION DirEntry; WCHAR NullWchar; /* @@ -1090,7 +1090,7 @@ */ ReturnLength = sizeof(DWORD); EntryCount = 0; - for (DirEntry = (PDIRECTORY_BASIC_INFORMATION) Buffer; 0 != DirEntry->ObjectName.Length; + for (DirEntry = (POBJECT_DIRECTORY_INFORMATION) Buffer; 0 != DirEntry->ObjectName.Length; DirEntry++) { ReturnLength += DirEntry->ObjectName.Length + sizeof(WCHAR); @@ -1137,7 +1137,7 @@ lpBuffer = (PVOID) ((PCHAR) lpBuffer + sizeof(DWORD));
NullWchar = L'\0'; - for (DirEntry = (PDIRECTORY_BASIC_INFORMATION) Buffer; 0 != DirEntry->ObjectName.Length; + for (DirEntry = (POBJECT_DIRECTORY_INFORMATION) Buffer; 0 != DirEntry->ObjectName.Length; DirEntry++) { Status = MmCopyToCaller(lpBuffer, DirEntry->ObjectName.Buffer, DirEntry->ObjectName.Length); _____
Modified: trunk/reactos/w32api/include/ddk/ntapi.h --- trunk/reactos/w32api/include/ddk/ntapi.h 2005-01-02 22:17:02 UTC (rev 12739) +++ trunk/reactos/w32api/include/ddk/ntapi.h 2005-01-02 23:12:40 UTC (rev 12740) @@ -943,10 +943,10 @@
IN OUT PULONG Context, OUT PULONG ReturnLength OPTIONAL);
-typedef struct _DIRECTORY_BASIC_INFORMATION { +typedef struct _OBJECT_DIRECTORY_INFORMATION { UNICODE_STRING ObjectName; UNICODE_STRING ObjectTypeName; -} DIRECTORY_BASIC_INFORMATION, *PDIRECTORY_BASIC_INFORMATION; +} OBJECT_DIRECTORY_INFORMATION, *POBJECT_DIRECTORY_INFORMATION;
NTOSAPI NTSTATUS