From 8ad42b6b1c338aa4015d152290e0512b83aece00 Mon Sep 17 00:00:00 2001 From: Sam Hocevar Date: Wed, 22 Sep 2010 23:57:01 +0000 Subject: [PATCH] Mark diverted Win32 functions as __stdcall, it's the correct calling convention. --- src/libzzuf/lib-win32.c | 42 ++++++++++++++++++++++------------------- 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/src/libzzuf/lib-win32.c b/src/libzzuf/lib-win32.c index 9e37df3..7e23794 100644 --- a/src/libzzuf/lib-win32.c +++ b/src/libzzuf/lib-win32.c @@ -37,18 +37,21 @@ /* Kernel functions that we divert */ #if defined HAVE_CREATEFILEA -static HANDLE (*ORIG(CreateFileA))(LPCTSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, - DWORD, DWORD, HANDLE); +static HANDLE (__stdcall *ORIG(CreateFileA))(LPCTSTR, DWORD, DWORD, + LPSECURITY_ATTRIBUTES, + DWORD, DWORD, HANDLE); #endif #if defined HAVE_CREATEFILEA -static HANDLE (*ORIG(CreateFileW))(LPCWSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, - DWORD, DWORD, HANDLE); +static HANDLE (__stdcall *ORIG(CreateFileW))(LPCWSTR, DWORD, DWORD, + LPSECURITY_ATTRIBUTES, + DWORD, DWORD, HANDLE); #endif #if defined HAVE_READFILE -static BOOL (*ORIG(ReadFile))(HANDLE, LPVOID, DWORD, LPDWORD, LPOVERLAPPED); +static BOOL (__stdcall *ORIG(ReadFile))(HANDLE, LPVOID, DWORD, LPDWORD, + LPOVERLAPPED); #endif #if defined HAVE_CLOSEHANDLE -static BOOL (*ORIG(CloseHandle))(HANDLE); +static BOOL (__stdcall *ORIG(CloseHandle))(HANDLE); #endif /* @@ -56,12 +59,12 @@ static BOOL (*ORIG(CloseHandle))(HANDLE); */ #if defined HAVE_CREATEFILEA -HANDLE NEW(CreateFileA)(LPCTSTR lpFileName, DWORD dwDesiredAccess, +HANDLE __stdcall NEW(CreateFileA)(LPCTSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile) { - fprintf(stderr, "CreateFileA diverted!\n"); + fprintf(stderr, "CreateFileA(%s)\n", lpFileName); return ORIG(CreateFileA)(lpFileName, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile); @@ -69,12 +72,12 @@ HANDLE NEW(CreateFileA)(LPCTSTR lpFileName, DWORD dwDesiredAccess, #endif #if defined HAVE_CREATEFILEW -HANDLE NEW(CreateFileW)(LPCWSTR lpFileName, DWORD dwDesiredAccess, +HANDLE __stdcall NEW(CreateFileW)(LPCWSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile) { - fprintf(stderr, "CreateFileW diverted!\n"); + fprintf(stderr, "CreateFileW(?)\n"); return ORIG(CreateFileW)(lpFileName, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile); @@ -86,13 +89,14 @@ HANDLE NEW(CreateFileW)(LPCWSTR lpFileName, DWORD dwDesiredAccess, */ #if defined HAVE_READFILE -BOOL NEW(ReadFile)(HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, - LPDWORD lpNumberOfBytesRead, LPOVERLAPPED lpOverlapped) -{ - fprintf(stderr, "ReadFile diverted!\n"); - return ORIG(ReadFile)(hFile, lpBuffer, nNumberOfBytesToRead, - lpNumberOfBytesRead, lpOverlapped); -} +BOOL __stdcall NEW(ReadFile)(HANDLE hFile, LPVOID lpBuffer, + DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead, + LPOVERLAPPED lpOverlapped) +{ + fprintf(stderr, "ReadFile(%i)\n", nNumberOfBytesToRead); + return ORIG(ReadFile)(hFile, lpBuffer, nNumberOfBytesToRead, + lpNumberOfBytesRead, lpOverlapped); +} #endif /* @@ -100,9 +104,9 @@ BOOL NEW(ReadFile)(HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, */ #if defined HAVE_CLOSEHANDLE -BOOL NEW(CloseHandle)(HANDLE hObject) +BOOL __stdcall NEW(CloseHandle)(HANDLE hObject) { - fprintf(stderr, "CloseHandle diverted!\n"); + fprintf(stderr, "CloseHandle(%i)\n", hObject); return ORIG(CloseHandle)(hObject); } #endif