BeginEnumWindowsは、データを収める構造体を確保して、中身を初期化します。 まず、呼び出し側スレッドをファイバ化します(ConvertThreadToFiber)。 次に、新しいファイバを作ります(CreateFiber)。 ファイバはスレッドと違い、作っただけでは実行を開始しません。FiberProcはまだ眠りについたまま、制御は呼び出し側(EnumWindows2)へ戻ります。 EnumWindows2からEnumWindowが呼ばれます。 この中ではSwitchToFiberが呼ばれています。引数はBeginEnumWindowsで作った、FiberProcを指し示すファイバポインタなので、ここで初めて、FiberProc(1)が実行され始めます。 と同時に、EnumWindowの実行は一旦中断されます。 FiberProcの中ではEnumWindows(EnumWin