Hast du deinen Code mal für 64 Bit kompiliert? Dort wird dein packed
Unicode String einige Probleme verursachen. Wie gesagt, die
API erwartet ein Aligned Struct. Unter 32 Bit passt das Alignment zufällig. Unter 64 Bit war das bei meinen Versuchen nicht der Fall.
Da das Align aber, soweit ich weiß, die Standardeinstellung ist, brauchst du im Grunde nur die packed Direktive entfernen, ohne irgendwelche Compilerflags zu setzen.