Dazu möchte ich noch sagen, dass ich einen systemischen Fehler für sehr unwahrscheinlich halte. Dein Code ist vollkommen korrekt und löst diesen Fehler vermutlich gar nicht aus. Ich verorte das Problem entweder an einer vollkommen anderen Stelle, die unerlaubt fremden Speicher manipuliert, oder eine externe Quelle (z.B. einen defekten Treiber oder eine fehlerhafte
DLL) als Ursache des Problems. MadExcept zeigt doch die geladenen Module und deren Versionen an. Vielleicht wirst du da bei einem Vergleich mit einem funktionierenden System fündig.