Fonction RtlRestoreContext (winnt.h)
Restaure le contexte de l’appelant dans l’enregistrement de contexte spécifié.
Syntaxe
NTSYSAPI VOID __cdecl RtlRestoreContext(
PCONTEXT ContextRecord,
_EXCEPTION_RECORD *ExceptionRecord
);
Paramètres
[in] ContextRecord
Pointeur vers une structure CONTEXT .
[in] ExceptionRecord
Pointeur vers une structure EXCEPTION_RECORD . Ce paramètre est facultatif et doit généralement avoir la valeur NULL.
Un enregistrement d’exception est principalement utilisé avec la prise en charge du saut en longueur et de la levée de capture C++. Si le membre ExceptionCode est STATUS_LONGJUMP, le membre ExceptionInformation contient un pointeur vers une mémoire tampon de saut. RtlRestoreContext copie l’état non volatile de la mémoire tampon de saut dans vers l’enregistrement de contexte avant la restauration de l’enregistrement de contexte.
Si le membre ExceptionCode est STATUS_UNWIND_CONSOLIDATE, le membre ExceptionInformation contient un pointeur vers une fonction de rappel, telle qu’un gestionnaire de capture. RtlRestoreContext consolide les trames d’appel entre son image et l’image spécifiée dans l’enregistrement de contexte avant d’appeler la fonction de rappel. Cela masque les images de toute gestion des exceptions qui peut se produire dans la fonction de rappel. La différence entre cela et un déroulement classique est que les données sur la pile sont toujours présentes, de sorte que les données frame telles qu’un objet throw sont toujours disponibles. La fonction de rappel retourne un nouveau compteur de programme à mettre à jour dans l’enregistrement de contexte, qui est ensuite utilisé dans un contexte de restauration normal.
Valeur renvoyée
Cette fonction ne retourne pas de valeur.
Configuration requise
Plateforme cible | Windows |
En-tête | winnt.h (inclure Windows.h) |
Bibliothèque | Kernel32.lib |
DLL | Kernel32.dll |