Struktury informacji o operacji łańcuchowej unwind
Jeśli ustawiono flagę UNW_FLAG_CHAININFO, następnie strukturę info odkręcanie jest drugorzędną, a pole adresowej wyjątek-program obsługi/powiązane info zawiera informacje odkręcanie podstawowego.Następujące pobiera kod podstawowej odkręcanie informacji, przy założeniu, że unwindInfo jest strukturę, która zawiera UNW_FLAG_CHAININFO dla flagi jest ustawiona.
PRUNTIME_FUNCTION primaryUwindInfo = (PRUNTIME_FUNCTION)&(unwindInfo->UnwindCode[( unwindInfo->CountOfCodes + 1 ) & ~1]);
Połączone informacje jest przydatne w dwóch sytuacjach.Po pierwsze to może służyć do segmentów nieciągłego kodu.Za pomocą łańcuchowej info, można zmniejszyć rozmiar informacji wymagane odkręcanie, ponieważ nie masz do powielenia tablicy kodów odkręcanie, z info odkręcanie podstawowego.
Umożliwia także łańcuchowej info do grupowania zapisuje w rejestrze lotnych.Kompilator może opóźnić zapisywania niektórych rejestrów lotnych, aż znajdzie się poza prologu wpisu funkcji.Można to zapisać poprzez odkręcanie podstawowego o użytkowniku część funkcji przed kodem zgrupowane, a następnie utworzenie powiązane info o rozmiarze zera prologu, gdzie kody odkręcanie w łańcuchowej info odzwierciedlają zapisuje nieulotna rejestrów.W takim przypadku kody odkręcanie są wszystkie wystąpienia UWOP_SAVE_NONVOL.Grupa, które zapisuje rejestry nieulotna używając PUSH lub modyfikuje rejestr RSP przy użyciu alokacji dodatkowe stałe stos nie jest obsługiwana.
Element UNWIND_INFO, który ma UNW_FLAG_CHAININFO zestaw zawiera pozycję RUNTIME_FUNCTION, którego element UNWIND_INFO ma również UNW_FLAG_CHAININFO ustawić (magazynowany wielu).Ostatecznie łańcuchowej odkręcanie info, że wskaźniki nadejdą do elementu UNWIND_INFO, który ma UNW_FLAG_CHAININFO wyczyszczone; jest to podstawowy element UNWIND_INFO, co wskazuje na punktu wejścia procedury rzeczywiste.