diff --git a/dlls/kernel/thread.c b/dlls/kernel/thread.c index 6d59e0330b3..3394dc56b73 100644 --- a/dlls/kernel/thread.c +++ b/dlls/kernel/thread.c @@ -623,7 +623,7 @@ HANDLE WINAPI GetCurrentThread(void) __ASM_GLOBAL_FUNC( SetLastError, "movl 4(%esp),%eax\n\t" ".byte 0x64\n\t" - "movl %eax,0x60\n\t" + "movl %eax,0x34\n\t" "ret $4" ); /*********************************************************************** @@ -631,7 +631,7 @@ __ASM_GLOBAL_FUNC( SetLastError, * GetLastError (KERNEL32.@) */ /* DWORD WINAPI GetLastError(void); */ -__ASM_GLOBAL_FUNC( GetLastError, ".byte 0x64\n\tmovl 0x60,%eax\n\tret" ); +__ASM_GLOBAL_FUNC( GetLastError, ".byte 0x64\n\tmovl 0x34,%eax\n\tret" ); /*********************************************************************** * GetCurrentProcessId (KERNEL.471) @@ -657,7 +657,7 @@ __ASM_GLOBAL_FUNC( GetCurrentThreadId, ".byte 0x64\n\tmovl 0x24,%eax\n\tret" ); */ void WINAPI SetLastError( DWORD error ) /* [in] Per-thread error code */ { - NtCurrentTeb()->last_error = error; + NtCurrentTeb()->LastErrorValue = error; } /********************************************************************** @@ -668,7 +668,7 @@ void WINAPI SetLastError( DWORD error ) /* [in] Per-thread error code */ */ DWORD WINAPI GetLastError(void) { - return NtCurrentTeb()->last_error; + return NtCurrentTeb()->LastErrorValue; } /*********************************************************************** diff --git a/dlls/ntdll/heap.c b/dlls/ntdll/heap.c index ecfe30c57e3..c9b59806a86 100644 --- a/dlls/ntdll/heap.c +++ b/dlls/ntdll/heap.c @@ -135,7 +135,7 @@ static BOOL HEAP_IsRealArena( HEAP *heapPtr, DWORD flags, LPCVOID block, BOOL qu /* SetLastError for ntdll */ inline static void set_status( NTSTATUS status ) { - NtCurrentTeb()->last_error = RtlNtStatusToDosError( status ); + NtCurrentTeb()->LastErrorValue = RtlNtStatusToDosError( status ); } /* mark a block of memory as free for debugging purposes */ diff --git a/include/thread.h b/include/thread.h index 0dc27e10328..f0caf18984f 100644 --- a/include/thread.h +++ b/include/thread.h @@ -68,7 +68,7 @@ typedef struct _TEB WORD pad1; /* --n 2a */ PVOID ThreadLocalStoragePointer; /* 1-- 2c Pointer to TLS array */ PEB *Peb; /* 12- 30 owning process PEB */ - DWORD flags; /* 1-n 34 */ + DWORD LastErrorValue; /* -2- 34 Last error code */ DWORD exit_code; /* 1-- 38 Termination status */ WORD teb_sel; /* 1-- 3c Selector to TEB */ WORD emu_sel; /* 1-n 3e 80387 emulator selector */ diff --git a/include/winbase.h b/include/winbase.h index 47315ca15a6..25d82245f35 100644 --- a/include/winbase.h +++ b/include/winbase.h @@ -1903,7 +1903,7 @@ extern inline DWORD WINAPI GetLastError(void); extern inline DWORD WINAPI GetLastError(void) { DWORD ret; - __asm__ __volatile__( ".byte 0x64\n\tmovl 0x60,%0" : "=r" (ret) ); + __asm__ __volatile__( ".byte 0x64\n\tmovl 0x34,%0" : "=r" (ret) ); return ret; } @@ -1926,7 +1926,7 @@ extern inline DWORD WINAPI GetCurrentThreadId(void) extern inline void WINAPI SetLastError( DWORD err ); extern inline void WINAPI SetLastError( DWORD err ) { - __asm__ __volatile__( ".byte 0x64\n\tmovl %0,0x60" : : "r" (err) : "memory" ); + __asm__ __volatile__( ".byte 0x64\n\tmovl %0,0x34" : : "r" (err) : "memory" ); } extern inline HANDLE WINAPI GetProcessHeap(void);