https://git.reactos.org/?p=reactos.git;a=commitdiff;h=b16a07fa6913184abe2d2bee321f8f7aef919808
commit b16a07fa6913184abe2d2bee321f8f7aef919808 Author: Pierre Schweitzer <[email protected]> AuthorDate: Sat Jun 1 14:56:28 2019 +0200 Commit: Pierre Schweitzer <[email protected]> CommitDate: Sat Jun 1 14:56:28 2019 +0200 [NTOSKRNL] Implement ObIsLUIDDeviceMapsEnabled and call it in NtQueryInformationProcess --- ntoskrnl/include/internal/ob.h | 7 +++++++ ntoskrnl/ob/devicemap.c | 11 +++++++++++ ntoskrnl/ob/obdir.c | 3 +-- ntoskrnl/ob/obname.c | 3 --- ntoskrnl/ps/query.c | 4 ++-- 5 files changed, 21 insertions(+), 7 deletions(-) diff --git a/ntoskrnl/include/internal/ob.h b/ntoskrnl/include/internal/ob.h index ddbfeb42d92..132b47f5a6b 100644 --- a/ntoskrnl/include/internal/ob.h +++ b/ntoskrnl/include/internal/ob.h @@ -429,6 +429,12 @@ ObpCreateDosDevicesDirectory( VOID ); +ULONG +NTAPI +ObIsLUIDDeviceMapsEnabled( + VOID +); + // // Security descriptor cache functions // @@ -621,6 +627,7 @@ extern ULONG ObpUnsecureGlobalNamesLength; extern ULONG ObpObjectSecurityMode; extern ULONG ObpProtectionMode; extern ULONG ObpLUIDDeviceMapsDisabled; +extern ULONG ObpLUIDDeviceMapsEnabled; // // Inlined Functions diff --git a/ntoskrnl/ob/devicemap.c b/ntoskrnl/ob/devicemap.c index dd501f134f8..a4cd5afbfae 100644 --- a/ntoskrnl/ob/devicemap.c +++ b/ntoskrnl/ob/devicemap.c @@ -13,6 +13,9 @@ #define NDEBUG #include <debug.h> +ULONG ObpLUIDDeviceMapsDisabled; +ULONG ObpLUIDDeviceMapsEnabled; + /* PRIVATE FUNCTIONS ******************************************************/ NTSTATUS @@ -249,6 +252,14 @@ ObQueryDeviceMapInformation(IN PEPROCESS Process, } +ULONG +NTAPI +ObIsLUIDDeviceMapsEnabled(VOID) +{ + return ObpLUIDDeviceMapsEnabled; +} + + #if 0 NTSTATUS NTAPI diff --git a/ntoskrnl/ob/obdir.c b/ntoskrnl/ob/obdir.c index 3c62411fed5..f8e3a36a06a 100644 --- a/ntoskrnl/ob/obdir.c +++ b/ntoskrnl/ob/obdir.c @@ -17,7 +17,6 @@ #define NDEBUG #include <debug.h> -BOOLEAN ObpLUIDDeviceMapsEnabled; POBJECT_TYPE ObpDirectoryObjectType = NULL; /* PRIVATE FUNCTIONS ******************************************************/ @@ -141,7 +140,7 @@ ObpLookupEntryDirectory(IN POBJECT_DIRECTORY Directory, PAGED_CODE(); /* Check if we should search the shadow directory */ - if (!ObpLUIDDeviceMapsEnabled) SearchShadow = FALSE; + if (ObpLUIDDeviceMapsEnabled == 0) SearchShadow = FALSE; /* Fail if we don't have a directory or name */ if (!(Directory) || !(Name)) goto Quickie; diff --git a/ntoskrnl/ob/obname.c b/ntoskrnl/ob/obname.c index f05a06805d0..5700d43d5ca 100644 --- a/ntoskrnl/ob/obname.c +++ b/ntoskrnl/ob/obname.c @@ -32,9 +32,6 @@ UNICODE_STRING ObpDosDevicesShortName = WCHAR ObpUnsecureGlobalNamesBuffer[128] = {0}; ULONG ObpUnsecureGlobalNamesLength = sizeof(ObpUnsecureGlobalNamesBuffer); -ULONG ObpLUIDDeviceMapsDisabled; -ULONG ObpLUIDDeviceMapsEnabled; - /* PRIVATE FUNCTIONS *********************************************************/ INIT_FUNCTION diff --git a/ntoskrnl/ps/query.c b/ntoskrnl/ps/query.c index 1f605be3349..12036fb01a1 100644 --- a/ntoskrnl/ps/query.c +++ b/ntoskrnl/ps/query.c @@ -911,8 +911,8 @@ NtQueryInformationProcess(IN HANDLE ProcessHandle, /* Protect write in SEH */ _SEH2_TRY { - /* Return FALSE -- we don't support this */ - *(PULONG)ProcessInformation = FALSE; + /* Query Ob */ + *(PULONG)ProcessInformation = ObIsLUIDDeviceMapsEnabled(); } _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) {
