Obsługa określonego języka

Względny adres określony program obsługi języka jest obecny w UNWIND_INFO, w każdym przypadku, gdy są ustawione flagi, UNW_FLAG_EHANDLER lub UNW_FLAG_UHANDLER.Zgodnie z opisem w poprzedniej sekcji, określoną funkcję obsługi języka nazywa się w ramach przeszukiwania dla procedury obsługi wyjątków, lub jako część odkręcanie.Ma następujący prototyp:

typedef EXCEPTION_DISPOSITION (*PEXCEPTION_ROUTINE) (
    IN PEXCEPTION_RECORD ExceptionRecord,
    IN ULONG64 EstablisherFrame,
    IN OUT PCONTEXT ContextRecord,
    IN OUT PDISPATCHER_CONTEXT DispatcherContext
);

ExceptionRecord dostarcza wskaźnik do rekordu wyjątku, który ma standardowej rozdzielczości Win64.

EstablisherFrame jest adresem podstawy alokacji stosu stałych dla tej funkcji.

ContextRecord punkty do kontekstu wyjątku w czasie wystąpił wyjątek (w przypadku procedury obsługi wyjątków) lub bieżący "odpoczynek" kontekstu (w przypadku zakończenia programu obsługi).

DispatcherContext wskazuje na kontekście dyspozytora dla tej funkcji.Posiada następującą definicję:

typedef struct _DISPATCHER_CONTEXT {
    ULONG64 ControlPc;
    ULONG64 ImageBase;
    PRUNTIME_FUNCTION FunctionEntry;
    ULONG64 EstablisherFrame;
    ULONG64 TargetIp;
    PCONTEXT ContextRecord;
    PEXCEPTION_ROUTINE LanguageHandler;
    PVOID HandlerData;
} DISPATCHER_CONTEXT, *PDISPATCHER_CONTEXT;

ControlPc jest wartością protokołu RIP w ramach tej funkcji.Jest to adres wyjątku lub adres, w którym formant w lewo ustanawiające funkcji.Jest to protokół RIP, który posłuży do ustalenia, czy formant jest w ramach niektórych strzeżony konstrukcje w tej funkcji (na przykład blok __try __try / __except lub __try/__finally).

Baza obrazu znajduje się obraz podstawowy (adres ładowania) modułu zawierającej tę funkcję, można dodać do przesunięcia 32-bitowe, użytego w zapisie funkcji i odpoczynek info do rejestrowania adresów względnych.

FunctionEntry dostaw wskaźnik RUNTIME_FUNCTION funkcja wpis gospodarstwa funkcji i odkręcanie image base info względne adresy dla tej funkcji.

EstablisherFrame jest adresem podstawy alokacji stosu stałych dla tej funkcji.

TargetIp dostarcza adres instrukcji opcjonalny, który określa adres kontynuacji odkręcanie.Adres ten jest ignorowany, jeśli EstablisherFrame nie jest określony.

ContextRecord punkty do kontekstu wyjątku, do użycia przez kod wysyłki/odkręcanie wyjątek systemu.

LanguageHandler wskazuje na procedury obsługi języka języka miano.

HandlerData wskazuje na danych obsługi języka dla tej funkcji.

Zobacz też

Informacje

Obsługa wyjątków (x64)