There is nothing in Delphi core libraries that could call BSOD directly. As David noted, Delphi programs run in user space. However, if they send incorrect data to the kernel driver, this is another matter.
You said that the D7-D2010 update, and the first thing that happens to me is updating the line. The standard Delphi string type has been changed from AnsiString (1 byte per char) to UnicodeString (2 bytes per char) and if you send the wrong string type to the driver or system procedure, it may cause strange behavior somewhere.
The first thing I would like to do is run the full assembly and watch for the "implicit conversion" warnings from the compiler. This means that you are mixing string types. Find them and fix them and see if that helps.
Also, if you have any import units for external libraries and they use APIs that take a string parameter (or most likely PChar ), make sure they are converted to PAnsiChar . Delphi has already taken care of this for the Windows API materials used in windows.pas , but if you have any of your own, you need to take care of yourself.
source share