mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 10:04:49 +00:00
[NTOS:PS] Add ThreadInformation probing to NtSetInformationThread
Also get rid of unused buffer check code. This fixes two test failures.
This commit is contained in:
parent
2e88e2b904
commit
4d7062abb6
1 changed files with 39 additions and 10 deletions
|
@ -2032,18 +2032,47 @@ NtSetInformationThread(IN HANDLE ThreadHandle,
|
|||
ULONG_PTR TlsIndex = 0;
|
||||
PVOID *ExpansionSlots;
|
||||
PETHREAD ProcThread;
|
||||
ULONG Alignment;
|
||||
PAGED_CODE();
|
||||
|
||||
/* Verify Information Class validity */
|
||||
#if 0
|
||||
Status = DefaultSetInfoBufferCheck(ThreadInformationClass,
|
||||
PsThreadInfoClass,
|
||||
RTL_NUMBER_OF(PsThreadInfoClass),
|
||||
ThreadInformation,
|
||||
ThreadInformationLength,
|
||||
PreviousMode);
|
||||
if (!NT_SUCCESS(Status)) return Status;
|
||||
#endif
|
||||
/* Check if we were called from user mode */
|
||||
if (PreviousMode != KernelMode)
|
||||
{
|
||||
/* Enter SEH */
|
||||
_SEH2_TRY
|
||||
{
|
||||
switch (ThreadInformationClass)
|
||||
{
|
||||
case ThreadPriority:
|
||||
Alignment = sizeof(KPRIORITY);
|
||||
break;
|
||||
|
||||
case ThreadAffinityMask:
|
||||
case ThreadQuerySetWin32StartAddress:
|
||||
Alignment = sizeof(ULONG_PTR);
|
||||
break;
|
||||
|
||||
case ThreadEnableAlignmentFaultFixup:
|
||||
Alignment = sizeof(BOOLEAN);
|
||||
break;
|
||||
|
||||
default:
|
||||
Alignment = sizeof(ULONG);
|
||||
break;
|
||||
}
|
||||
|
||||
/* Probe the buffer */
|
||||
ProbeForRead(ThreadInformation,
|
||||
ThreadInformationLength,
|
||||
Alignment);
|
||||
}
|
||||
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
|
||||
{
|
||||
/* Return the exception code */
|
||||
_SEH2_YIELD(return _SEH2_GetExceptionCode());
|
||||
}
|
||||
_SEH2_END;
|
||||
}
|
||||
|
||||
/* Check what kind of information class this is */
|
||||
switch (ThreadInformationClass)
|
||||
|
|
Loading…
Reference in a new issue