* We've been waiting, for a long time, for the mighty GCC version upgrade, but that was easier said than done, for the Windows build at least. Many have tried, to no avail, so Amine finally decided to step up, to give it a shot.. he went on and learned the dark arts of compiling GCC... and he succeeded !

* In the journey of running his GCC 4.7.1 compiled bootcd, two issues were revealed. Thomas kindly investigated them and fixed them, and as a result the bootcd boots to shell !
[CSRSRV]
* Fix the output parameter of ProcessLUIDDeviceMapsEnabled case in NtQueryInformationProcess() to be ULONG instead of BOOLEAN (as required).
* ASSERT that the function succeeds.
[SMSS]
* Move this condition up to the commented-out part (where it belongs).

svn path=/trunk/; revision=56972
This commit is contained in:
Amine Khaldi 2012-07-29 00:47:58 +00:00
parent 922ef66861
commit 614db35f56
2 changed files with 10 additions and 9 deletions

View file

@ -1402,8 +1402,8 @@ SmpInitializeKnownDllsInternal(IN PUNICODE_STRING Directory,
NTSTATUS Status, Status1; NTSTATUS Status, Status1;
PLIST_ENTRY NextEntry; PLIST_ENTRY NextEntry;
PSMP_REGISTRY_VALUE RegEntry; PSMP_REGISTRY_VALUE RegEntry;
ULONG_PTR ErrorParameters[3]; //ULONG_PTR ErrorParameters[3];
UNICODE_STRING ErrorResponse; //UNICODE_STRING ErrorResponse;
IO_STATUS_BLOCK IoStatusBlock; IO_STATUS_BLOCK IoStatusBlock;
SECURITY_DESCRIPTOR_CONTROL OldFlag = 0; SECURITY_DESCRIPTOR_CONTROL OldFlag = 0;
USHORT ImageCharacteristics; USHORT ImageCharacteristics;
@ -1545,7 +1545,6 @@ SmpInitializeKnownDllsInternal(IN PUNICODE_STRING Directory,
SmpTerminate(ErrorParameters, 5, RTL_NUMBER_OF(ErrorParameters)); SmpTerminate(ErrorParameters, 5, RTL_NUMBER_OF(ErrorParameters));
} }
else else
#endif
if (!(ImageCharacteristics & IMAGE_FILE_DLL)) if (!(ImageCharacteristics & IMAGE_FILE_DLL))
{ {
/* An invalid known DLL entry will also kill SMSS */ /* An invalid known DLL entry will also kill SMSS */
@ -1556,6 +1555,7 @@ SmpInitializeKnownDllsInternal(IN PUNICODE_STRING Directory,
ErrorParameters[2] = (ULONG)&RegEntry->Value; ErrorParameters[2] = (ULONG)&RegEntry->Value;
SmpTerminate(ErrorParameters, 5, RTL_NUMBER_OF(ErrorParameters)); SmpTerminate(ErrorParameters, 5, RTL_NUMBER_OF(ErrorParameters));
} }
#endif
/* Temporarily hack the SD to use a default DACL for this section */ /* Temporarily hack the SD to use a default DACL for this section */
if (SmpLiberalSecurityDescriptor) if (SmpLiberalSecurityDescriptor)

View file

@ -500,7 +500,7 @@ BasepFakeStaticServerData(VOID)
PSECURITY_DESCRIPTOR BnoSd; PSECURITY_DESCRIPTOR BnoSd;
HANDLE SymHandle; HANDLE SymHandle;
UNICODE_STRING DirectoryName, SymlinkName; UNICODE_STRING DirectoryName, SymlinkName;
BOOLEAN LuidEnabled; ULONG LuidEnabled;
RTL_QUERY_REGISTRY_TABLE BaseServerRegistryConfigurationTable[2] = RTL_QUERY_REGISTRY_TABLE BaseServerRegistryConfigurationTable[2] =
{ {
{ {
@ -674,11 +674,12 @@ BasepFakeStaticServerData(VOID)
} }
/* Check if LUID device maps are enabled */ /* Check if LUID device maps are enabled */
NtQueryInformationProcess(NtCurrentProcess(), Status = NtQueryInformationProcess(NtCurrentProcess(),
ProcessLUIDDeviceMapsEnabled, ProcessLUIDDeviceMapsEnabled,
&LuidEnabled, &LuidEnabled,
sizeof(LuidEnabled), sizeof(LuidEnabled),
NULL); NULL);
ASSERT(NT_SUCCESS(Status));
BaseStaticServerData->LUIDDeviceMapsEnabled = LuidEnabled; BaseStaticServerData->LUIDDeviceMapsEnabled = LuidEnabled;
if (!BaseStaticServerData->LUIDDeviceMapsEnabled) if (!BaseStaticServerData->LUIDDeviceMapsEnabled)
{ {