mirror of
https://github.com/reactos/reactos.git
synced 2024-12-26 17:14:41 +00:00
Fixed some warnings.
Added missing stubs. Implemented GetThreadPriotityBoost() and SetThreadPriorityBoost(). svn path=/trunk/; revision=4052
This commit is contained in:
parent
1eac255e7c
commit
834dbc5fd5
4 changed files with 223 additions and 166 deletions
|
@ -1,4 +1,4 @@
|
|||
/* $Id: stubs.c,v 1.43 2003/01/21 20:50:51 robd Exp $
|
||||
/* $Id: stubs.c,v 1.44 2003/01/22 02:23:48 ekohl Exp $
|
||||
*
|
||||
* KERNEL32.DLL stubs (unimplemented functions)
|
||||
* Remove from this file, if you implement them.
|
||||
|
@ -25,6 +25,14 @@ BaseAttachCompleteThunk (VOID)
|
|||
}
|
||||
|
||||
|
||||
BOOL STDCALL
|
||||
CancelIo(HANDLE hFile)
|
||||
{
|
||||
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
BOOL
|
||||
STDCALL
|
||||
CmdBatNotification (
|
||||
|
@ -593,32 +601,6 @@ GetThreadLocale (VOID)
|
|||
|
||||
#endif
|
||||
|
||||
WINBOOL
|
||||
STDCALL
|
||||
GetThreadPriorityBoost (
|
||||
HANDLE hThread,
|
||||
DWORD dwSelector,
|
||||
LPLDT_ENTRY lpSelectorEntry
|
||||
)
|
||||
{
|
||||
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
WINBOOL
|
||||
STDCALL
|
||||
GetThreadSelectorEntry (
|
||||
HANDLE hThread,
|
||||
DWORD dwSelector,
|
||||
LPLDT_ENTRY lpSelectorEntry
|
||||
)
|
||||
{
|
||||
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
STDCALL
|
||||
GetTimeFormatW (
|
||||
|
@ -870,6 +852,47 @@ SetComputerNameW (
|
|||
}
|
||||
|
||||
|
||||
#ifndef _OLE2NLS_IN_BUILD_
|
||||
|
||||
WINBOOL
|
||||
STDCALL
|
||||
SetLocaleInfoA (
|
||||
LCID Locale,
|
||||
LCTYPE LCType,
|
||||
LPCSTR lpLCData
|
||||
)
|
||||
{
|
||||
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
WINBOOL
|
||||
STDCALL
|
||||
SetLocaleInfoW (
|
||||
LCID Locale,
|
||||
LCTYPE LCType,
|
||||
LPCWSTR lpLCData
|
||||
)
|
||||
{
|
||||
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
WINBOOL
|
||||
STDCALL
|
||||
SetThreadLocale (
|
||||
LCID Locale
|
||||
)
|
||||
{
|
||||
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
WINBOOL
|
||||
STDCALL
|
||||
SetSystemPowerState (
|
||||
|
@ -884,16 +907,8 @@ SetSystemPowerState (
|
|||
|
||||
WINBOOL
|
||||
STDCALL
|
||||
SetThreadIdealProcessor(VOID)
|
||||
{
|
||||
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
WINBOOL
|
||||
STDCALL
|
||||
SetThreadPriorityBoost(VOID)
|
||||
SetThreadIdealProcessor(HANDLE hThread,
|
||||
DWORD dwIdealProcessor)
|
||||
{
|
||||
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
||||
return 0;
|
||||
|
@ -945,45 +960,9 @@ VDMOperationStarted (
|
|||
return 0;
|
||||
}
|
||||
|
||||
|
||||
#ifndef _OLE2NLS_IN_BUILD_
|
||||
|
||||
WINBOOL
|
||||
STDCALL
|
||||
SetLocaleInfoA (
|
||||
LCID Locale,
|
||||
LCTYPE LCType,
|
||||
LPCSTR lpLCData
|
||||
)
|
||||
{
|
||||
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
WINBOOL
|
||||
STDCALL
|
||||
SetLocaleInfoW (
|
||||
LCID Locale,
|
||||
LCTYPE LCType,
|
||||
LPCWSTR lpLCData
|
||||
)
|
||||
{
|
||||
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
WINBOOL
|
||||
STDCALL
|
||||
SetThreadLocale (
|
||||
LCID Locale
|
||||
)
|
||||
{
|
||||
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
DWORD
|
||||
STDCALL
|
||||
VerLanguageNameA (
|
||||
|
@ -1023,6 +1002,7 @@ VirtualBufferExceptionHandler (
|
|||
return 0;
|
||||
}
|
||||
|
||||
|
||||
BOOL
|
||||
STDCALL
|
||||
GetFileAttributesExA(
|
||||
|
@ -1035,6 +1015,7 @@ GetFileAttributesExA(
|
|||
return 0;
|
||||
}
|
||||
|
||||
|
||||
BOOL
|
||||
STDCALL
|
||||
GetFileAttributesExW(
|
||||
|
@ -1047,5 +1028,4 @@ GetFileAttributesExW(
|
|||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/* EOF */
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: create.c,v 1.60 2003/01/19 01:13:04 gvg Exp $
|
||||
/* $Id: create.c,v 1.61 2003/01/22 02:24:10 ekohl Exp $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS system libraries
|
||||
|
@ -823,13 +823,13 @@ CreateProcessW(LPCWSTR lpApplicationName,
|
|||
|
||||
DPRINT("Launching VDM...\n");
|
||||
return CreateProcessW(L"ntvdm.exe",
|
||||
lpApplicationName,
|
||||
(LPWSTR)lpApplicationName,
|
||||
lpProcessAttributes,
|
||||
lpThreadAttributes,
|
||||
bInheritHandles,
|
||||
dwCreationFlags,
|
||||
lpEnvironment,
|
||||
lpCurrentDirectory,
|
||||
dwCreationFlags,
|
||||
lpEnvironment,
|
||||
lpCurrentDirectory,
|
||||
lpStartupInfo,
|
||||
lpProcessInformation);
|
||||
}
|
||||
|
@ -865,7 +865,7 @@ CreateProcessW(LPCWSTR lpApplicationName,
|
|||
RuntimeInfo_U.Buffer = RtlAllocateHeap(GetProcessHeap(), 0, RuntimeInfo_U.Length);
|
||||
memcpy(RuntimeInfo_U.Buffer, lpStartupInfo->lpReserved2, lpStartupInfo->cbReserved2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Create the PPB
|
||||
|
@ -883,14 +883,14 @@ CreateProcessW(LPCWSTR lpApplicationName,
|
|||
|
||||
if (lpStartupInfo && lpStartupInfo->lpReserved2)
|
||||
RtlFreeHeap(GetProcessHeap(), 0, RuntimeInfo_U.Buffer);
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Translate some handles for the new process
|
||||
*/
|
||||
if (Ppb->CurrentDirectoryHandle)
|
||||
{
|
||||
Status = NtDuplicateObject (NtCurrentProcess(),
|
||||
Status = NtDuplicateObject (NtCurrentProcess(),
|
||||
Ppb->CurrentDirectoryHandle,
|
||||
hProcess,
|
||||
&Ppb->CurrentDirectoryHandle,
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: proc.c,v 1.50 2003/01/15 21:24:35 chorns Exp $
|
||||
/* $Id: proc.c,v 1.51 2003/01/22 02:24:10 ekohl Exp $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS system libraries
|
||||
|
@ -25,14 +25,14 @@ WaitForInputIdleType lpfnGlobalRegisterWaitForInputIdle;
|
|||
LPSTARTUPINFO lpLocalStartupInfo = NULL;
|
||||
|
||||
VOID STDCALL
|
||||
RegisterWaitForInputIdle (WaitForInputIdleType lpfnRegisterWaitForInputIdle);
|
||||
RegisterWaitForInputIdle(WaitForInputIdleType lpfnRegisterWaitForInputIdle);
|
||||
|
||||
WINBOOL STDCALL
|
||||
GetProcessId (HANDLE hProcess, LPDWORD lpProcessId);
|
||||
|
||||
|
||||
/* FUNCTIONS ****************************************************************/
|
||||
|
||||
WINBOOL STDCALL
|
||||
GetProcessId (HANDLE hProcess, LPDWORD lpProcessId);
|
||||
|
||||
WINBOOL STDCALL
|
||||
GetProcessAffinityMask(HANDLE hProcess,
|
||||
LPDWORD lpProcessAffinityMask,
|
||||
|
@ -54,6 +54,14 @@ GetProcessAffinityMask(HANDLE hProcess,
|
|||
}
|
||||
|
||||
|
||||
BOOL STDCALL
|
||||
SetProcessAffinityMask(HANDLE hProcess,
|
||||
DWORD dwProcessAffinityMask)
|
||||
{
|
||||
return(FALSE);
|
||||
}
|
||||
|
||||
|
||||
WINBOOL STDCALL
|
||||
GetProcessShutdownParameters(LPDWORD lpdwLevel,
|
||||
LPDWORD lpdwFlags)
|
||||
|
@ -111,8 +119,24 @@ GetProcessWorkingSetSize(HANDLE hProcess,
|
|||
LPDWORD lpMinimumWorkingSetSize,
|
||||
LPDWORD lpMaximumWorkingSetSize)
|
||||
{
|
||||
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
||||
return(FALSE);
|
||||
QUOTA_LIMITS QuotaLimits;
|
||||
NTSTATUS Status;
|
||||
|
||||
Status = NtQueryInformationProcess(hProcess,
|
||||
ProcessQuotaLimits,
|
||||
&QuotaLimits,
|
||||
sizeof(QUOTA_LIMITS),
|
||||
NULL);
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
SetLastErrorByStatus(Status);
|
||||
return(FALSE);
|
||||
}
|
||||
|
||||
*lpMinimumWorkingSetSize = (DWORD)QuotaLimits.MinimumWorkingSetSize;
|
||||
*lpMaximumWorkingSetSize = (DWORD)QuotaLimits.MaximumWorkingSetSize;
|
||||
|
||||
return(TRUE);
|
||||
}
|
||||
|
||||
|
||||
|
@ -147,7 +171,7 @@ GetProcessTimes(HANDLE hProcess,
|
|||
return(FALSE);
|
||||
}
|
||||
|
||||
lpCreationTime->dwLowDateTime = Kut.CreateTime.u.LowPart;
|
||||
lpCreationTime->dwLowDateTime = Kut.CreateTime.u.LowPart;
|
||||
lpCreationTime->dwHighDateTime = Kut.CreateTime.u.HighPart;
|
||||
|
||||
lpExitTime->dwLowDateTime = Kut.ExitTime.u.LowPart;
|
||||
|
@ -213,22 +237,24 @@ WINBOOL STDCALL
|
|||
GetProcessId(HANDLE hProcess,
|
||||
LPDWORD lpProcessId)
|
||||
{
|
||||
NTSTATUS errCode;
|
||||
PROCESS_BASIC_INFORMATION ProcessBasic;
|
||||
ULONG BytesWritten;
|
||||
PROCESS_BASIC_INFORMATION ProcessBasic;
|
||||
ULONG BytesWritten;
|
||||
NTSTATUS Status;
|
||||
|
||||
errCode = NtQueryInformationProcess(hProcess,
|
||||
ProcessBasicInformation,
|
||||
&ProcessBasic,
|
||||
sizeof(PROCESS_BASIC_INFORMATION),
|
||||
&BytesWritten);
|
||||
if (!NT_SUCCESS(errCode))
|
||||
{
|
||||
SetLastErrorByStatus (errCode);
|
||||
return FALSE;
|
||||
}
|
||||
memcpy( lpProcessId ,&ProcessBasic.UniqueProcessId,sizeof(DWORD));
|
||||
return TRUE;
|
||||
Status = NtQueryInformationProcess(hProcess,
|
||||
ProcessBasicInformation,
|
||||
&ProcessBasic,
|
||||
sizeof(PROCESS_BASIC_INFORMATION),
|
||||
&BytesWritten);
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
SetLastErrorByStatus(Status);
|
||||
return(FALSE);
|
||||
}
|
||||
|
||||
memcpy(lpProcessId, &ProcessBasic.UniqueProcessId, sizeof(DWORD));
|
||||
|
||||
return(TRUE);
|
||||
}
|
||||
|
||||
|
||||
|
@ -690,12 +716,4 @@ GetProcessVersion (DWORD ProcessId)
|
|||
return (Version);
|
||||
}
|
||||
|
||||
|
||||
BOOL STDCALL
|
||||
SetProcessAffinityMask(HANDLE hProcess, DWORD dwProcessAffinityMask)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
/* EOF */
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: thread.c,v 1.33 2003/01/15 21:24:36 chorns Exp $
|
||||
/* $Id: thread.c,v 1.34 2003/01/22 02:24:36 ekohl Exp $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS system libraries
|
||||
|
@ -18,7 +18,7 @@
|
|||
#include <kernel32/kernel32.h>
|
||||
|
||||
|
||||
static VOID ThreadAttachDlls (VOID);
|
||||
//static VOID ThreadAttachDlls (VOID);
|
||||
|
||||
/* FUNCTIONS *****************************************************************/
|
||||
|
||||
|
@ -62,13 +62,13 @@ CreateThread(LPSECURITY_ATTRIBUTES lpThreadAttributes,
|
|||
DWORD dwCreationFlags,
|
||||
LPDWORD lpThreadId)
|
||||
{
|
||||
return(CreateRemoteThread(NtCurrentProcess(),
|
||||
lpThreadAttributes,
|
||||
dwStackSize,
|
||||
lpStartAddress,
|
||||
lpParameter,
|
||||
dwCreationFlags,
|
||||
lpThreadId));
|
||||
return(CreateRemoteThread(NtCurrentProcess(),
|
||||
lpThreadAttributes,
|
||||
dwStackSize,
|
||||
lpStartAddress,
|
||||
lpParameter,
|
||||
dwCreationFlags,
|
||||
lpThreadId));
|
||||
}
|
||||
|
||||
|
||||
|
@ -258,34 +258,33 @@ GetCurrentThreadId(VOID)
|
|||
VOID STDCALL
|
||||
ExitThread(DWORD uExitCode)
|
||||
{
|
||||
NTSTATUS errCode;
|
||||
BOOLEAN LastThread;
|
||||
NTSTATUS Status;
|
||||
BOOLEAN LastThread;
|
||||
NTSTATUS Status;
|
||||
|
||||
/*
|
||||
* Terminate process if this is the last thread
|
||||
* of the current process
|
||||
*/
|
||||
Status = NtQueryInformationThread(NtCurrentThread(),
|
||||
ThreadAmILastThread,
|
||||
&LastThread,
|
||||
sizeof(BOOLEAN),
|
||||
NULL);
|
||||
if (NT_SUCCESS(Status) && LastThread == TRUE)
|
||||
{
|
||||
ExitProcess (uExitCode);
|
||||
}
|
||||
/*
|
||||
* Terminate process if this is the last thread
|
||||
* of the current process
|
||||
*/
|
||||
Status = NtQueryInformationThread(NtCurrentThread(),
|
||||
ThreadAmILastThread,
|
||||
&LastThread,
|
||||
sizeof(BOOLEAN),
|
||||
NULL);
|
||||
if (NT_SUCCESS(Status) && LastThread == TRUE)
|
||||
{
|
||||
ExitProcess(uExitCode);
|
||||
}
|
||||
|
||||
/* FIXME: notify csrss of thread termination */
|
||||
/* FIXME: notify csrss of thread termination */
|
||||
|
||||
LdrShutdownThread();
|
||||
LdrShutdownThread();
|
||||
|
||||
errCode = NtTerminateThread(NtCurrentThread(),
|
||||
uExitCode);
|
||||
if (!NT_SUCCESS(errCode))
|
||||
{
|
||||
SetLastErrorByStatus(errCode);
|
||||
}
|
||||
Status = NtTerminateThread(NtCurrentThread(),
|
||||
uExitCode);
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
SetLastErrorByStatus(Status);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -296,25 +295,27 @@ GetThreadTimes(HANDLE hThread,
|
|||
LPFILETIME lpKernelTime,
|
||||
LPFILETIME lpUserTime)
|
||||
{
|
||||
NTSTATUS errCode;
|
||||
KERNEL_USER_TIMES KernelUserTimes;
|
||||
ULONG ReturnLength;
|
||||
|
||||
errCode = NtQueryInformationThread(hThread,
|
||||
ThreadTimes,
|
||||
&KernelUserTimes,
|
||||
sizeof(KERNEL_USER_TIMES),
|
||||
&ReturnLength);
|
||||
if (!NT_SUCCESS(errCode))
|
||||
{
|
||||
SetLastErrorByStatus(errCode);
|
||||
return FALSE;
|
||||
}
|
||||
memcpy(lpCreationTime, &KernelUserTimes.CreateTime, sizeof(FILETIME));
|
||||
memcpy(lpExitTime, &KernelUserTimes.ExitTime, sizeof(FILETIME));
|
||||
memcpy(lpKernelTime, &KernelUserTimes.KernelTime, sizeof(FILETIME));
|
||||
memcpy(lpUserTime, &KernelUserTimes.UserTime, sizeof(FILETIME));
|
||||
return TRUE;
|
||||
KERNEL_USER_TIMES KernelUserTimes;
|
||||
ULONG ReturnLength;
|
||||
NTSTATUS Status;
|
||||
|
||||
Status = NtQueryInformationThread(hThread,
|
||||
ThreadTimes,
|
||||
&KernelUserTimes,
|
||||
sizeof(KERNEL_USER_TIMES),
|
||||
&ReturnLength);
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
SetLastErrorByStatus(Status);
|
||||
return(FALSE);
|
||||
}
|
||||
|
||||
memcpy(lpCreationTime, &KernelUserTimes.CreateTime, sizeof(FILETIME));
|
||||
memcpy(lpExitTime, &KernelUserTimes.ExitTime, sizeof(FILETIME));
|
||||
memcpy(lpKernelTime, &KernelUserTimes.KernelTime, sizeof(FILETIME));
|
||||
memcpy(lpUserTime, &KernelUserTimes.UserTime, sizeof(FILETIME));
|
||||
|
||||
return(TRUE);
|
||||
}
|
||||
|
||||
|
||||
|
@ -528,4 +529,62 @@ GetThreadPriority(HANDLE hThread)
|
|||
return(ThreadBasic.BasePriority);
|
||||
}
|
||||
|
||||
|
||||
WINBOOL STDCALL
|
||||
GetThreadPriorityBoost(IN HANDLE hThread,
|
||||
OUT PBOOL pDisablePriorityBoost)
|
||||
{
|
||||
ULONG PriorityBoost;
|
||||
ULONG DataWritten;
|
||||
NTSTATUS Status;
|
||||
|
||||
Status = NtQueryInformationThread(hThread,
|
||||
ThreadPriorityBoost,
|
||||
&PriorityBoost,
|
||||
sizeof(ULONG),
|
||||
&DataWritten);
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
SetLastErrorByStatus(Status);
|
||||
return(FALSE);
|
||||
}
|
||||
|
||||
*pDisablePriorityBoost = !((WINBOOL)PriorityBoost);
|
||||
|
||||
return(TRUE);
|
||||
}
|
||||
|
||||
|
||||
WINBOOL STDCALL
|
||||
SetThreadPriorityBoost(IN HANDLE hThread,
|
||||
IN WINBOOL bDisablePriorityBoost)
|
||||
{
|
||||
ULONG PriorityBoost;
|
||||
NTSTATUS Status;
|
||||
|
||||
PriorityBoost = (ULONG)!bDisablePriorityBoost;
|
||||
|
||||
Status = NtSetInformationThread(hThread,
|
||||
ThreadPriorityBoost,
|
||||
&PriorityBoost,
|
||||
sizeof(ULONG));
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
SetLastErrorByStatus(Status);
|
||||
return(FALSE);
|
||||
}
|
||||
|
||||
return(TRUE);
|
||||
}
|
||||
|
||||
|
||||
WINBOOL STDCALL
|
||||
GetThreadSelectorEntry(IN HANDLE hThread,
|
||||
IN DWORD dwSelector,
|
||||
OUT LPLDT_ENTRY lpSelectorEntry)
|
||||
{
|
||||
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
||||
return(FALSE);
|
||||
}
|
||||
|
||||
/* EOF */
|
||||
|
|
Loading…
Reference in a new issue