lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


On Tue, Mar 9, 2010 at 12:55 AM, Mike Pall <mikelu-1003@mike.de> wrote:
> But anyway, those definitions are in "WinNT.h" from the WinSDK
> (API v7.0). It has 15031 lines here. Maybe a pure MSVC install has
> a reduced version of it?
>
> And since you said that RtlUnwindEx is undefined ... maybe you're
> building against an older Windows API? MSDN says this call is
> present since WinXP x64. It's not present in any 32 bit version.

My local copy of MSDN tells me that RtlUnwindEx requires "Windows XP
64-Bit Edition Version 2003" or "64-bit edition of Windows Server
2003" (or later, obviously), and that it is "declared in Winternl.h".
Opening said file does reveal a definition for RtlUnwindEx, but only
on IA64, not x64:

VOID
RtlUnwind (
    IN PVOID TargetFrame OPTIONAL,
    IN PVOID TargetIp OPTIONAL,
    IN PEXCEPTION_RECORD ExceptionRecord OPTIONAL,
    IN PVOID ReturnValue
    );

#if defined(_M_IA64)

VOID
RtlUnwind2 (
    IN FRAME_POINTERS TargetFrame OPTIONAL,
    IN PVOID TargetIp OPTIONAL,
    IN PEXCEPTION_RECORD ExceptionRecord OPTIONAL,
    IN PVOID ReturnValue,
    IN PCONTEXT ContextRecord
    );

VOID
RtlUnwindEx (
    IN FRAME_POINTERS TargetFrame OPTIONAL,
    IN PVOID TargetIp OPTIONAL,
    IN PEXCEPTION_RECORD ExceptionRecord OPTIONAL,
    IN PVOID ReturnValue,
    IN PCONTEXT ContextRecord,
    IN PUNWIND_HISTORY_TABLE HistoryTable OPTIONAL
    );

#endif // _M_IA64

My local copy of WinNT.h has 12977 lines in it, and a grep over the
Windows SDK include folder installed with Visual Studio turns up only
that one reference to RtlUnwindEx:
C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include>grep RtlUnwindEx *.*
winternl.h:RtlUnwindEx (

Judging by the path name, this looks like version 6.0A of the Windows
SDK rather than 7.0, which might explain why your copy has a
definition and mine does not.