Всё, с проблемой я разобрался. Такое поведение было вызвано несоответствием типов вызывающей программы и DLL. При этом я сам допустил ошибку: запускал отладку в релизной версии, из-за чего и не мог понять, что происходит, т.к. никаких предупреждений от компилятора я не получал. До этого я потратил много времени на компиляцию вызывающей программы, в Debug она так и не запускается (там нужно дописывать пути к заголовкам, что сделал только для релизной версии) :). Так вот при запуске отладчика в Debug режиме после работы функции, которая возвращала буфер, VS выдаёт предупреждение о проблемах с регистром ESP.