I was hoping to hear more about where the exception objects 'live' until they're caught:
Is some big buffer allocated into which they are placed, on a per-stack basis (in which case, who allocates it? What if I stupidly use CreateThread instead of _beginthreadex)?
Is the exception constructed first and copied there (or else what happens when an exception is thrown during exception object construction - when is the exception considered thrown)?
How big can an exception object be?
If I do something silly to increase the alignment of a class, is that handled?
How do exception frames work within exception handlers? So on.
Great video otherwise, but it would have been nice to get further into the implementation details beyond "We have a linked list of frames at FS:0 on x86 and a table of handlers based on instruction addresses for x64". For example, a while ago I saw Brandon
Bray give a great presentation on SafeSEH, which wasn't even mentioned here.