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

View file

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