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.

Regards,
James.