Parâmetro em c #

Quando eu quero obter o valor total da memória em C # eu encontrei uma função kernel32 no MSDN para invocar dados do sistema. O MSDN declara a função desta maneira:

[return: MarshalAs(UnmanagedType.Bool)]
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
static extern bool GlobalMemoryStatusEx(ref MEMORYSTATUSEX lpBuffer);

mas isso não funciona corretamente. Eu mudo "ref" para "[In, Out]" então funciona corretamente. Como pode me dizer o que é [In, Out] parâmetros em c #?

questionAnswers(4)

yourAnswerToTheQuestion