.Net Compact FrameworkからGlobalMemoryStatus()を呼び出す

バイスの残りメモリを取ろうとこんな事をしてみました。
MSDNのサンプルによると

public struct MEMORYSTATUS
{
public uint dwLength;
public uint dwMemoryLoad;
public uint dwTotalPhys;
public uint dwAvailPhys;
public uint dwTotalPageFile;
public uint dwAvailPageFile;
public uint dwTotalVirtual;
public uint dwAvailVirtual;
}

[DllImport("CoreDll.dll")]
public static extern void GlobalMemoryStatus
(
MEMORYSTATUS lpBuffer
);

public void ShowMemory()
{
// Call the native GlobalMemoryStatus method
// with the defined structure.
MEMORYSTATUS memStatus = new MEMORYSTATUS();
GlobalMemoryStatus(memStatus);
}

らしいのですが、GlobalMemoryStatusを呼んだ時点でアプリが終了します。Exceptionすらも出さずに。
むむ?サンプルの解釈が間違ってるのかな?