diff --git a/reactos/dll/win32/kernel32/mem/local.c b/reactos/dll/win32/kernel32/mem/local.c index 1e9ce729c03..608ccd47bcf 100644 --- a/reactos/dll/win32/kernel32/mem/local.c +++ b/reactos/dll/win32/kernel32/mem/local.c @@ -255,7 +255,7 @@ NTAPI LocalLock(HLOCAL hMem) { /* This is the same as a GlobalLock, assuming these never change */ - ASSERT(LMEM_LOCKCOUNT == GMEM_LOCKCOUNT); + C_ASSERT(LMEM_LOCKCOUNT == GMEM_LOCKCOUNT); return GlobalLock(hMem); } diff --git a/reactos/dll/win32/kernel32/mem/section.c b/reactos/dll/win32/kernel32/mem/section.c index 43ece5687cc..68c397c4359 100644 --- a/reactos/dll/win32/kernel32/mem/section.c +++ b/reactos/dll/win32/kernel32/mem/section.c @@ -353,16 +353,20 @@ OpenFileMappingW(DWORD dwDesiredAccess, BOOL NTAPI FlushViewOfFile(LPCVOID lpBaseAddress, - DWORD dwNumberOfBytesToFlush) + SIZE_T dwNumberOfBytesToFlush) { + SIZE_T NumberOfBytesToFlush; NTSTATUS Status; - ULONG NumberOfBytesFlushed; + IO_STATUS_BLOCK IoStatusBlock; + + /* Save amount of bytes to flush to a local var */ + NumberOfBytesToFlush = dwNumberOfBytesToFlush; /* Flush the view */ Status = NtFlushVirtualMemory(NtCurrentProcess(), (LPVOID)lpBaseAddress, - dwNumberOfBytesToFlush, - &NumberOfBytesFlushed); + &NumberOfBytesToFlush, + &IoStatusBlock); if (!NT_SUCCESS(Status)) { /* We failed */ diff --git a/reactos/include/psdk/winbase.h b/reactos/include/psdk/winbase.h index ffb9d360078..4448fa66829 100644 --- a/reactos/include/psdk/winbase.h +++ b/reactos/include/psdk/winbase.h @@ -1398,7 +1398,7 @@ DWORD WINAPI GetFirmwareEnvironmentVariableW(LPCWSTR,LPCWSTR,PVOID,DWORD); #endif BOOL WINAPI FlushFileBuffers(HANDLE); BOOL WINAPI FlushInstructionCache(HANDLE,PCVOID,DWORD); -BOOL WINAPI FlushViewOfFile(PCVOID,DWORD); +BOOL WINAPI FlushViewOfFile(PCVOID,SIZE_T); DWORD WINAPI FlsAlloc(PFLS_CALLBACK_FUNCTION); PVOID WINAPI FlsGetValue(DWORD); BOOL WINAPI FlsSetValue(DWORD,PVOID); diff --git a/reactos/include/psdk/winnt.h b/reactos/include/psdk/winnt.h index 5e2eb4b13c0..05093d5c20b 100644 --- a/reactos/include/psdk/winnt.h +++ b/reactos/include/psdk/winnt.h @@ -238,6 +238,13 @@ typedef BYTE FCHAR; typedef WORD FSHORT; typedef DWORD FLONG; +#define __C_ASSERT_JOIN(X, Y) __C_ASSERT_DO_JOIN(X, Y) +#define __C_ASSERT_DO_JOIN(X, Y) __C_ASSERT_DO_JOIN2(X, Y) +#define __C_ASSERT_DO_JOIN2(X, Y) X##Y + +#define C_ASSERT(e) typedef char __C_ASSERT_JOIN(__C_ASSERT__, __LINE__)[(e) ? 1 : -1] + + #ifdef __GNUC__ #include "intrin.h" #endif diff --git a/reactos/include/psdk/winternl.h b/reactos/include/psdk/winternl.h index 037eb3b3c94..f58fc899dc0 100644 --- a/reactos/include/psdk/winternl.h +++ b/reactos/include/psdk/winternl.h @@ -1739,7 +1739,7 @@ NTSTATUS WINAPI NtFindAtom(const WCHAR*,ULONG,RTL_ATOM*); NTSTATUS WINAPI NtFlushBuffersFile(HANDLE,IO_STATUS_BLOCK*); NTSTATUS WINAPI NtFlushInstructionCache(HANDLE,LPCVOID,SIZE_T); NTSTATUS WINAPI NtFlushKey(HANDLE); -NTSTATUS WINAPI NtFlushVirtualMemory(HANDLE,LPCVOID*,SIZE_T*,ULONG); +NTSTATUS WINAPI NtFlushVirtualMemory(HANDLE,LPCVOID*,SIZE_T*,PIO_STATUS_BLOCK); NTSTATUS WINAPI NtFlushWriteBuffer(VOID); NTSTATUS WINAPI NtFreeVirtualMemory(HANDLE,PVOID*,SIZE_T*,ULONG); NTSTATUS WINAPI NtFsControlFile(HANDLE,HANDLE,PIO_APC_ROUTINE,PVOID,PIO_STATUS_BLOCK,ULONG,PVOID,ULONG,PVOID,ULONG);