That the faulting module is reported as ntdll.dll is not surprising. The ntdll module contains the code that manages the memory that's allocated to the heap on behalf of an application. It's detecting a corruption in the system memory areas of the heap whenever the application asks it to allocate/deallocate a chunk of memory from the heap.
However, it's *not* ntdll that is corrupting the heap. Some other part of the system (either the application itself, in this case the Stellaris game, or any of the subsystems that are usesd by the game, which includes directx, drivers, file system, multi media subsystem, etc) has written to an area of memory (which happens to store the heap control data) it had no business writing into. It could have written into other portions of the heap memory. In which case the Windows memory manager would not have detected it, but then some internal game data would have been corrupted. Causing other types of crashes, such as Access Violations. Or weird game behaviour.
In any case, the actual fault is the writing into a piece of memory that should have been off limits. And could have happened minutes earlier before it's actually detected.
In another similar case, it turned out to be a device driver of a piece of hardware that wasn't playing nice.
However, it's *not* ntdll that is corrupting the heap. Some other part of the system (either the application itself, in this case the Stellaris game, or any of the subsystems that are usesd by the game, which includes directx, drivers, file system, multi media subsystem, etc) has written to an area of memory (which happens to store the heap control data) it had no business writing into. It could have written into other portions of the heap memory. In which case the Windows memory manager would not have detected it, but then some internal game data would have been corrupted. Causing other types of crashes, such as Access Violations. Or weird game behaviour.
In any case, the actual fault is the writing into a piece of memory that should have been off limits. And could have happened minutes earlier before it's actually detected.
In another similar case, it turned out to be a device driver of a piece of hardware that wasn't playing nice.