mirror of
git://source.winehq.org/git/wine.git
synced 2024-10-06 07:47:07 +00:00
kernelbase: Add SetProcessInformation().
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53954 Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
This commit is contained in:
parent
ec749f4e1f
commit
ce91ef6426
|
@ -1448,6 +1448,7 @@
|
|||
@ stdcall -import SetProcessAffinityUpdateMode(long long)
|
||||
@ stdcall -import SetProcessDefaultCpuSets(ptr ptr long)
|
||||
@ stdcall SetProcessDEPPolicy(long)
|
||||
@ stdcall -import SetProcessInformation(long long ptr long)
|
||||
@ stdcall -import SetProcessMitigationPolicy(long ptr long)
|
||||
@ stdcall -import SetProcessPreferredUILanguages(long ptr ptr)
|
||||
@ stdcall -import SetProcessPriorityBoost(long long)
|
||||
|
|
|
@ -1494,7 +1494,7 @@
|
|||
@ stdcall SetProcessAffinityUpdateMode(long long)
|
||||
@ stdcall SetProcessDefaultCpuSets(ptr ptr long)
|
||||
@ stdcall SetProcessGroupAffinity(long ptr ptr)
|
||||
# @ stub SetProcessInformation
|
||||
@ stdcall SetProcessInformation(long long ptr long)
|
||||
@ stdcall SetProcessMitigationPolicy(long ptr long)
|
||||
@ stdcall SetProcessPreferredUILanguages(long ptr ptr)
|
||||
@ stdcall SetProcessPriorityBoost(long long)
|
||||
|
|
|
@ -691,6 +691,26 @@ BOOL WINAPI DECLSPEC_HOTPATCH CreateProcessW( const WCHAR *app_name, WCHAR *cmd_
|
|||
}
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
* SetProcessInformation (kernelbase.@)
|
||||
*/
|
||||
BOOL WINAPI SetProcessInformation( HANDLE process, PROCESS_INFORMATION_CLASS info_class, void *info, DWORD size )
|
||||
{
|
||||
switch (info_class)
|
||||
{
|
||||
case ProcessMemoryPriority:
|
||||
return set_ntstatus( NtSetInformationProcess( process, ProcessPagePriority, info, size ));
|
||||
case ProcessPowerThrottling:
|
||||
return set_ntstatus( NtSetInformationProcess( process, ProcessPowerThrottlingState, info, size ));
|
||||
case ProcessLeapSecondInfo:
|
||||
return set_ntstatus( NtSetInformationProcess( process, ProcessLeapSecondInformation, info, size ));
|
||||
default:
|
||||
FIXME("Unrecognized information class %d.\n", info_class);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*********************************************************************
|
||||
* DuplicateHandle (kernelbase.@)
|
||||
*/
|
||||
|
|
|
@ -1078,6 +1078,9 @@ NTSTATUS WINAPI wow64_NtSetInformationProcess( UINT *args )
|
|||
case ProcessDefaultHardErrorMode: /* ULONG */
|
||||
case ProcessPriorityClass: /* PROCESS_PRIORITY_CLASS */
|
||||
case ProcessExecuteFlags: /* ULONG */
|
||||
case ProcessPagePriority: /* MEMORY_PRIORITY_INFORMATION */
|
||||
case ProcessPowerThrottlingState: /* PROCESS_POWER_THROTTLING_STATE */
|
||||
case ProcessLeapSecondInformation: /* PROCESS_LEAP_SECOND_INFO */
|
||||
return NtSetInformationProcess( handle, class, ptr, len );
|
||||
|
||||
case ProcessAffinityMask: /* ULONG_PTR */
|
||||
|
|
|
@ -1943,7 +1943,7 @@ NTSTATUS WINAPI ZwSetEvent(HANDLE,PULONG);
|
|||
NTSTATUS WINAPI ZwSetInformationFile(HANDLE,PIO_STATUS_BLOCK,PVOID,ULONG,FILE_INFORMATION_CLASS);
|
||||
NTSTATUS WINAPI ZwSetInformationKey(HANDLE,const int,PVOID,ULONG);
|
||||
NTSTATUS WINAPI ZwSetInformationObject(HANDLE, OBJECT_INFORMATION_CLASS, PVOID, ULONG);
|
||||
NTSTATUS WINAPI ZwSetInformationProcess(HANDLE,PROCESS_INFORMATION_CLASS,PVOID,ULONG);
|
||||
NTSTATUS WINAPI ZwSetInformationProcess(HANDLE,PROCESSINFOCLASS,PVOID,ULONG);
|
||||
NTSTATUS WINAPI ZwSetInformationThread(HANDLE,THREADINFOCLASS,LPCVOID,ULONG);
|
||||
NTSTATUS WINAPI ZwSetIoCompletion(HANDLE,ULONG,ULONG,NTSTATUS,ULONG);
|
||||
NTSTATUS WINAPI ZwSetLdtEntries(ULONG,ULONG,ULONG,ULONG,ULONG,ULONG);
|
||||
|
|
|
@ -1771,6 +1771,21 @@ typedef struct _WIN32_MEMORY_RANGE_ENTRY
|
|||
SIZE_T NumberOfBytes;
|
||||
} WIN32_MEMORY_RANGE_ENTRY, *PWIN32_MEMORY_RANGE_ENTRY;
|
||||
|
||||
typedef enum _PROCESS_INFORMATION_CLASS
|
||||
{
|
||||
ProcessMemoryPriority,
|
||||
ProcessMemoryExhaustionInfo,
|
||||
ProcessAppMemoryInfo,
|
||||
ProcessInPrivateInfo,
|
||||
ProcessPowerThrottling,
|
||||
ProcessReservedValue1,
|
||||
ProcessTelemetryCoverageInfo,
|
||||
ProcessProtectionLevelInfo,
|
||||
ProcessLeapSecondInfo,
|
||||
ProcessMachineTypeInfo,
|
||||
ProcessInformationClassMax
|
||||
} PROCESS_INFORMATION_CLASS;
|
||||
|
||||
WINBASEAPI BOOL WINAPI ActivateActCtx(HANDLE,ULONG_PTR *);
|
||||
WINADVAPI BOOL WINAPI AddAccessAllowedAce(PACL,DWORD,DWORD,PSID);
|
||||
WINADVAPI BOOL WINAPI AddAccessAllowedAceEx(PACL,DWORD,DWORD,DWORD,PSID);
|
||||
|
@ -2689,6 +2704,7 @@ WINBASEAPI BOOL WINAPI SetPriorityClass(HANDLE,DWORD);
|
|||
WINADVAPI BOOL WINAPI SetPrivateObjectSecurity(SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR*,PGENERIC_MAPPING,HANDLE);
|
||||
WINADVAPI BOOL WINAPI SetPrivateObjectSecurityEx(SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR*,ULONG,PGENERIC_MAPPING,HANDLE);
|
||||
WINBASEAPI BOOL WINAPI SetProcessAffinityMask(HANDLE,DWORD_PTR);
|
||||
WINBASEAPI BOOL WINAPI SetProcessInformation(HANDLE,PROCESS_INFORMATION_CLASS,LPVOID,DWORD);
|
||||
WINBASEAPI BOOL WINAPI SetProcessPriorityBoost(HANDLE,BOOL);
|
||||
WINBASEAPI BOOL WINAPI SetProcessShutdownParameters(DWORD,DWORD);
|
||||
WINBASEAPI BOOL WINAPI SetProcessWorkingSetSize(HANDLE,SIZE_T,SIZE_T);
|
||||
|
|
|
@ -1574,12 +1574,14 @@ typedef enum _PROCESSINFOCLASS {
|
|||
ProcessConsoleHostProcess = 49,
|
||||
ProcessWindowInformation = 50,
|
||||
ProcessHandleInformation = 51,
|
||||
ProcessPowerThrottlingState = 77,
|
||||
ProcessLeapSecondInformation = 97,
|
||||
MaxProcessInfoClass,
|
||||
#ifdef __WINESRC__
|
||||
ProcessWineMakeProcessSystem = 1000,
|
||||
ProcessWineLdtCopy,
|
||||
#endif
|
||||
} PROCESSINFOCLASS, PROCESS_INFORMATION_CLASS;
|
||||
} PROCESSINFOCLASS;
|
||||
|
||||
#define MEM_EXECUTE_OPTION_DISABLE 0x01
|
||||
#define MEM_EXECUTE_OPTION_ENABLE 0x02
|
||||
|
@ -4174,7 +4176,7 @@ NTSYSAPI NTSTATUS WINAPI NtSetInformationFile(HANDLE,PIO_STATUS_BLOCK,PVOID,ULO
|
|||
NTSYSAPI NTSTATUS WINAPI NtSetInformationJobObject(HANDLE,JOBOBJECTINFOCLASS,PVOID,ULONG);
|
||||
NTSYSAPI NTSTATUS WINAPI NtSetInformationKey(HANDLE,const int,PVOID,ULONG);
|
||||
NTSYSAPI NTSTATUS WINAPI NtSetInformationObject(HANDLE, OBJECT_INFORMATION_CLASS, PVOID, ULONG);
|
||||
NTSYSAPI NTSTATUS WINAPI NtSetInformationProcess(HANDLE,PROCESS_INFORMATION_CLASS,PVOID,ULONG);
|
||||
NTSYSAPI NTSTATUS WINAPI NtSetInformationProcess(HANDLE,PROCESSINFOCLASS,PVOID,ULONG);
|
||||
NTSYSAPI NTSTATUS WINAPI NtSetInformationThread(HANDLE,THREADINFOCLASS,LPCVOID,ULONG);
|
||||
NTSYSAPI NTSTATUS WINAPI NtSetInformationToken(HANDLE,TOKEN_INFORMATION_CLASS,PVOID,ULONG);
|
||||
NTSYSAPI NTSTATUS WINAPI NtSetInformationVirtualMemory(HANDLE,VIRTUAL_MEMORY_INFORMATION_CLASS,ULONG_PTR,PMEMORY_RANGE_ENTRY,PVOID,ULONG);
|
||||
|
|
Loading…
Reference in a new issue