mirror of
https://github.com/git/git.git
synced 2024-10-29 21:37:53 +01:00
test-drop-caches: simplify delay loading of NtSetSystemInformation
Take advantage of the recent addition of support for lazy loading functions[1]
on Windows to simplify the loading of NtSetSystemInformation.
[1] db2f7c48cb
(Win32: simplify loading of DLL functions, 2017-09-25)
Signed-off-by: Ben Peart <benpeart@microsoft.com>
Reviewed-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
1f1cddd558
commit
447ed832e5
1 changed files with 4 additions and 12 deletions
|
@ -2,6 +2,7 @@
|
|||
#include "git-compat-util.h"
|
||||
|
||||
#if defined(GIT_WINDOWS_NATIVE)
|
||||
#include "lazyload.h"
|
||||
|
||||
static int cmd_sync(void)
|
||||
{
|
||||
|
@ -82,8 +83,7 @@ static int cmd_dropcaches(void)
|
|||
{
|
||||
HANDLE hProcess = GetCurrentProcess();
|
||||
HANDLE hToken;
|
||||
HMODULE ntdll;
|
||||
DWORD(WINAPI *NtSetSystemInformation)(INT, PVOID, ULONG);
|
||||
DECLARE_PROC_ADDR(ntdll.dll, DWORD, NtSetSystemInformation, INT, PVOID, ULONG);
|
||||
SYSTEM_MEMORY_LIST_COMMAND command;
|
||||
int status;
|
||||
|
||||
|
@ -95,14 +95,8 @@ static int cmd_dropcaches(void)
|
|||
|
||||
CloseHandle(hToken);
|
||||
|
||||
ntdll = LoadLibrary("ntdll.dll");
|
||||
if (!ntdll)
|
||||
return error("Can't load ntdll.dll, wrong Windows version?");
|
||||
|
||||
NtSetSystemInformation =
|
||||
(DWORD(WINAPI *)(INT, PVOID, ULONG))GetProcAddress(ntdll, "NtSetSystemInformation");
|
||||
if (!NtSetSystemInformation)
|
||||
return error("Can't get function addresses, wrong Windows version?");
|
||||
if (!INIT_PROC_ADDR(NtSetSystemInformation))
|
||||
return error("Could not find NtSetSystemInformation() function");
|
||||
|
||||
command = MemoryPurgeStandbyList;
|
||||
status = NtSetSystemInformation(
|
||||
|
@ -115,8 +109,6 @@ static int cmd_dropcaches(void)
|
|||
else if (status != STATUS_SUCCESS)
|
||||
error("Unable to execute the memory list command %d", status);
|
||||
|
||||
FreeLibrary(ntdll);
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue