Du solltest die Speicherverwaltung so umsetzen wie es üblich ist, auch in der Windows
API:
Du übergibst einen Pointer auf bereits reservierten Speicher an die
DLL plus die reservierte Größe, diese füllt ihn und du gibst den Speicher im Hostprogramm auch wieder frei. Wenn ein zu kleiner Puffer übergeben wurde, muss die Funktion einen entsprechenden Fehler und die benötigte Puffergröße zurückliefern.
Ein Beispiel ist zum Beispiel die Funktion GetPrinter:
https://msdn.microsoft.com/en-us/lib...or=-2147217396